首页 文章

算法难题的测试用例

提问于
浏览
1

以下是来自_851277的问题 . 有人可以给我一些测试用例和输出 . 我的解决方案在所有测试用例的时间限制内但是给出了错误的答案 .

圆总和(30分)

有一个 N 个孩子坐在一个圆圈上,顺时针方向编号为 1,2,...,N . ith 孩子有一张纸,上面写着数字 ai . 他们玩以下游戏:

在第一轮中,编号为 x 的孩子将他的邻居数量加起来 .

在第二轮中,顺时针顺序的下一个孩子将他的邻居数量的总和加上他的数字,依此类推 .

比赛结束后,比赛结束了8851283轮 .

输入:第一行包含 T ,测试用例数 . T 案例如下 . 测试用例的第一行包含两个空格分隔的整数 NM . 下一行包含 N 整数, ith 数字为 ai .

输出:对于每个测试用例,输出N行,每行有N个整数 . ith 行上的 jth 整数包含第j个孩子结束的数字,如果游戏以儿童 i 玩第一轮开始 . 在每个测试用例之后输出一个空白行,除了最后一个 . 由于数字可能非常大,因此输出模数为 1000000007 .

约束:

1 <= T <= 15
3 <= N <= 50
1 <= M <= 10^9
1 <= ai <= 10^9

样本输入:

2
5 1
10 20 30 40 50
3 4
1 2 1

样本输出:

80 20 30 40 50
10 60 30 40 50
10 20 90 40 50
10 20 30 120 50
10 20 30 40 100



23 7 12
11 21 6
7 13 24

1 回答

  • 1

    如果对于小型测试用例似乎没有问题,但不是全部,我猜你有溢出问题 .

    确保你要么......

    • 每次添加后都要模数,而不是在添加所有三个数字后 .

    • 使用64位数字 . 这仍然需要模数,但不是经常需要 .

    1000000007非常接近签名的32位数字(214748367)的限制 . 您可以添加调制数字而不会溢出,但不能添加三个 .

相关问题