Board Moves CodeForces - 1353C(数学)

题意:

有一个 n×n 的矩阵(n 为奇数),每个矩阵单元有一个物品,每次操作你可将一个单元里的一个物品移动到该单元周围的八个单元里,问最后只有一个单元有物品的情况下,最少要多少次操作?

题目:

You are given a board of size n×n, where n is odd (not divisible by 2). Initially, each cell of the board contains one figure.

In one move, you can select exactly one figure presented in some cell and move it to one of the cells sharing a side or a corner with the current cell, i.e. from the cell (i,j) you can move the figure to cells:

(i−1,j−1);
(i−1,j);
(i−1,j+1);
(i,j−1);
(i,j+1);
(i+1,j−1);
(i+1,j);
(i+1,j+1);
Of course, you can not move figures to cells out of the board. It is allowed that after a move there will be several figures in one cell.

Your task is to find the minimum number of moves needed to get all the figures into one cell (i.e. n2−1 cells should contain 0 figures and one cell should contain n2 figures).

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1≤t≤200) — the number of test cases. Then t test cases follow.

The only line of the test case contains one integer n (1≤n<5⋅105) — the size of the board. It is guaranteed that n is odd (not divisible by 2).

It is guaranteed that the sum of n over all test cases does not exceed 5⋅105 (∑n≤5⋅105).

Output

For each test case print the answer — the minimum number of moves needed to get all the figures into one cell.

Example

Input

3
1
5
499993

Output

0
40
41664916690999888

分析(1):

找规律。可以看到正方形的每一个“圈”到中心的最小距离都是一样的(数一下就能发现规律)。然后把整个正方形分成八个小三角形+八条线或者直接按照圈来统计都行。

AC代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int t;
ll n,ans;
int main()
{scanf("%d",&t);while(t--){ans=0;scanf("%lld",&n);for(ll i=2; i<=n/2+1; i++)ans+=(i-2)*(i-1);ans*=8;for(ll i=1; i<=n/2+1; i++)ans+=(i-1)*8;printf("%lld\n",ans);}return 0;
}

分析(二)

我们可以将所有物品最终都汇聚到矩阵的中心的单元格,那么以此为中心,他周围的第一圈的单元格的物品只需要一步就可以,第二圈就需要两步,以此类推。
  那么我们可以预处理出每一圈的单元格的数量,乘以他对应的步数,再求和即可。

AC代码

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
typedef long long ll;
int f[N];
int main()
{f[0] = 0;for(int i = 1; i < N; i ++)f[i] = f[i - 1] + 8;int t;cin >> t;while(t --){ll n;cin >> n;n = n * n - 1;ll ans = 0;for(int i = 1; ; i ++){if(n >= f[i]){n -= f[i];ans += 1ll * i * f[i];}elsebreak;}cout << ans << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BitArray虽好,但请不要滥用,又一次线上内存暴增排查

一&#xff1a;背景1. 讲故事前天写了一篇大内存排查在园子里挺火&#xff0c;这是做自媒体最开心的事拉&#xff0c;干脆再来一篇满足大家胃口&#xff0c;上个月我写了一篇博客提到过使用bitmap对原来的List<CustomerID>进行高强度压缩&#xff0c;将原来的List内存压缩…

2011年计算机基础知识试卷,2011年计算机一级考试理论试题:第六部分多选题

第6部分 信息与计算机基础知识 多选1.[ABC]通常来说&#xff0c;影响汉字输入速度的因素有 ______。(A)码长(B)重码率(C)是否有词组输入(D)有无提示行2.[BC]软件由______和______两部分组成。(A)数据(B)文档(C)程序(D)工具3.[BC]可以作为计算机存储容量的单位是______。(A)字母…

Constructing the Array CodeForces - 1353D(数据结构+分类+建设性算法)

题意&#xff1a; 有长度为 n 的数组 a &#xff0c;全为 0&#xff0c;接下来循环 n 次&#xff0c;每次选出一段最长的连续区间 [l, r]&#xff08;全为 0 &#xff0c;如果一样长&#xff0c;就选最左边的)。 如果 r−l1 是奇数&#xff0c;那么 a[lr2]ia[\frac{lr}{2}]ia…

[翻译]用于.NET Core的Windows窗体设计器发布

本文由微信公众号《开发者精选资讯》翻译首发&#xff0c;转载请注明来源今天我们很高兴地宣布&#xff0c;.NET Core 项目的 Windows 窗体设计器现在可以在 Visual Studio 2019 16.6 版中作为预览使用&#xff01;我们在 Visual Studio 16.7 预览版 1 中也提供了更新的设计器版…

运动会加油稿计算机学院,信息工程学院运动会加油稿

信息工程学院运动会加油稿1.你的汗水洒在跑道&#xff0c;浇灌着成功的花朵开放。你的欢笑飞扬在赛场&#xff0c;为班争光数你最棒。跑吧&#xff0c;追吧在这广阔的赛场上&#xff0c;你似骏马似离铉的箭。跑吧&#xff0c;追吧你比虎猛比豹强2你们挥舞着充满力量的双臂看着实…

K-periodic Garland CodeForces - 1353E(暴力+贪心+dp)

题意&#xff1a; 给定长为 n 的 0, 1 字符串&#xff0c;你可以通过一次操作改变一个字符&#xff08;0 变 1 or 1 变 0&#xff09;&#xff0c;问最少几次操作可以使任意相邻两个 1 之间的距离为 k ? 题目&#xff1a; You are given a garland consisting of n lamps. …

【视频回放与课件】零基础入门AI开发

今天上午&#xff0c;受广州图书馆邀请&#xff0c;在第一讲《零代码上手人工智能》的基础上&#xff0c;以《零基础入门AI开发》为主题&#xff0c;分四步解锁人工智能学习的概念与开发工具&#xff0c;让您在一小时内轻松掌握人工智能开发要领。本次课程内容主要包括&#xf…

三年级计算机群鸭戏水教案导入,三年级下册信息技术教案-3.7群鸭戏水-插入自选图形|清华版.doc...

第七课??《群鸭戏水——自选图形》??【教学内容分析】?本课&#xff0c;是小学信息技术(清华版)三年级下册第七课——自选图形的内容&#xff0c;通过前面章节的学习&#xff0c;学生已经学会了插入剪贴画和图片的操作。本节课创设了森林里要开动物运动会&#xff0c;请同…

Sequence with Digits CodeForces - 1355A(暴力+数学)

题意&#xff1a; 定义&#xff1a; an1anminDigit(an)maxDigit(an)。 给定 a1 和 k&#xff0c;求 ak &#xff1f; 题目&#xff1a; Let’s define the following recurrence: an1anminDigit(an)⋅maxDigit(an). Here minDigit(x) and maxDigit(x) are the minimal and …

Redis背后的故事

导语Redis已成为世界上最受欢迎的数据库之一&#xff0c;但当初正是因为Sanfilippo对数据库“缺乏经验”&#xff0c;使他敢于打破“良好”数据库工程的各种神圣规则&#xff0c;创建了Redis。正文如果Redis之父萨尔瓦多桑菲利波普&#xff08;Salvatore Sanfilippo&#xff09…

C++实现AOE网中的关键路径算法(邻接表存储)

代码如下: #include <iostream> #include <stack> #include <string> using namespace std; const int N 10010; using vnodeType int;typedef struct Node {int adj;int tw;//弧的时间权值Node *next; }Node;typedef struct Vnode {vnodeType v;//存储图…

哈工大威海计算机组成原理,哈工大威海计算机组成原理复习.pdf

第一章 绪论1.1 计算机的产生与发展现代计算机的发展电子管时代晶体管时代集成电路时代超大规模集成电路时代1.2 冯.诺伊曼计算机模型冯诺伊曼计算机的组成&#xff0c;各部分的作用.冯诺伊曼计算机的特点.(1) 计算机由运算器、存储器、控制器和输入设备、输出设备五大部件组成…

Minimal Square CodeForces - 1360A(简单思维和图形判断)

题意&#xff1a; 给你两个大小一样的&#xff0c;边长为a&#xff0c;b的矩形将其放入一个正方形里&#xff0c;问怎样放可以使正方形面积最小&#xff08;要求正方形边和矩形边平行&#xff09; 题目&#xff1a; Find the minimum area of a square land on which you ca…

基于 abp vNext 和 .NET Core 开发博客项目 - 接入GitHub,用JWT保护你的API

上一篇文章再次把Swagger的使用进行了讲解&#xff0c;完成了对Swagger的分组、描述和开启小绿锁以进行身份的认证授权&#xff0c;那么本篇就来说说身份认证授权。开始之前先搞清楚几个概念&#xff0c;请注意认证与授权是不同的意思&#xff0c;简单理解&#xff1a;认证&…

安徽计算机学业水平测试内容,【2017年整理】安徽省学业水平测试信息技术(必修)知识点.doc...

【2017年整理】安徽省学业水平测试信息技术(必修)知识点第一章 信息与信息技术1、香农信息是用来消除不确定性的东西维纳信息就是信息&#xff0c;不是物质&#xff0c;也不是能量钟义信信息是事物运动的状态和方式物质能量是构成世界的三大要素。信息一报纸是信息报上登载的足…