
不错的天气,不错的心情,第一次用 go 语言做题。


翻译
很长的题目,翻译错了思考了半小时,然后发现翻译错了,水题做出了难题的时间。
跟你一个大小为 n * n 的板子,n为奇数,每一个板子容器内有一个数字。
每一步你可以移动一个数字到它的周围八个位置,不能超出范围。
求所有数字移动到一个同格子内的最小步数。
输入格式
第一行输入数字 t,表示 t 组测试用例。
每个测试用例,输入一个数字 n。
保证所有 n 的和不大于 5 * 10 ^ 5
输出格式
输出所有数字移动到一个同格子内的最小步数。
分析
最小的步数应该是移动到中心点的情况,可以一圈一圈的计算然后求和。
第一圈是 1 * 8
第二圈是 4 * 8
第三圈是 9 * 8
。。。
第 n - 1 圈是 (n-1)(n-1) * 8
通过规律可以推算出结果。
代码(go)

// https://codeforces.com/contest/1353/problem/B
package main
import "fmt"
func main() {
var t, n, result, k int64
fmt.Scanln(&t)
for ; t > 0; t-- {
fmt.Scanln(&n)
result = 0
for k = 1; k <= n/2; k++ {
result += 4 * k * 2 * k
}
fmt.Println(result)
}
}
更多代码尽在 https://github.com/Tconan99/Codeforces
by 费城的二鹏 2020.05.19 长春
网友评论