美文网首页
Codeforces 1353C - Board Moves

Codeforces 1353C - Board Moves

作者: 费城的二鹏 | 来源:发表于2020-05-22 08:28 被阅读0次

不错的天气,不错的心情,第一次用 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 长春

相关文章

网友评论

      本文标题:Codeforces 1353C - Board Moves

      本文链接:https://www.haomeiwen.com/subject/qvyiohtx.html