CF2049D.Shift + Esc
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
对于被某个装置捉弄之后,龙 Evirir 决定利用他的魔法技能来改变现实以迅速逃脱。
你得到一个 n 行 m 列的非负整数网格,以及一个整数 k。我们用 (i,j) 表示从上到下第 i 行、从左到右第 j 列的单元格(1≤i≤n,1≤j≤m)。在每个单元格 (i,j) 上都有一个整数 ai,j。
你起始位于 (1,1),目标是走到 (n,m)。在移动过程中,你只能向下或向右移动——也就是说,如果你在 (i,j),只能移动到 (i+1,j) 或 (i,j+1),当然,前提是这些目标单元格必须存在。
在开始移动之前,你可以进行以下操作任意多次:
- 从 1 到 n 中选择一个整数 i,然后将第 i 行的元素循环左移一位。这个操作的效果是,将每个 ai,j 更新为 ai,(jmodm)+1。
请注意,一旦你开始移动,就不能再进行行移操作。从 (1,1) 到 (n,m) 之后,令 x 是你在开始移动之前进行的操作次数,而 y 是你经过的所有单元格上的整数之和(包括起始和目标位置)。最终成本被定义为 kx+y。
你的任务是计算出以最小成本从 (1,1) 移动到 (n,m) 所需的操作次数。
输入格式
输入包括多个测试用例。第一行为测试用例数量 t(1≤t≤104)。接下来每个测试用例包含:
- 一行三个用空格分隔的整数 n、m 和 k(1≤n,m≤200,0≤k≤109)。
- 随后的 n 行,每行包含 m 个用空格分隔的整数,分别表示这一行上的 ai,1,ai,2,…,ai,m(0≤ai,j≤109)。
所有测试用例中 n⋅m 的总和不超过 5⋅104。
输出格式
对于每个测试用例,输出从起点 (1,1) 到终点 (n,m) 的最小成本。
输入输出样例
输入#1
5 3 3 100 3 4 9 5 2 4 0 101 101 3 4 1 10 0 0 10 0 0 10 0 10 10 0 10 1 1 3 4 3 2 3 1 2 3 6 5 4 10 10 14 58 49 25 12 89 69 8 49 71 23 45 27 65 59 36 100 73 23 5 84 82 91 54 92 53 15 43 46 11 65 61 69 71 87 67 72 51 42 55 80 1 64 8 54 61 70 47 100 84 50 86 93 43 51 47 35 56 20 33 61 100 59 5 68 15 55 69 8 8 60 33 61 20 79 69 51 23 24 56 28 67 76 3 69 58 79 75 10 65 63 6 64 73 79 17 62 55 53 61 58
输出#1
113 6 4 13 618
说明/提示
在第一个测试用例中,最低成本是 113,可以通过以下步骤实现:
- 将第 3 行循环左移一次。网格变成:
3510142101940.
- 按以下路径行进:(1,1)→(1,2)→(2,2)→(2,3)→(3,3)。
进行了一次操作,访问的路径上整数之和为 y=3+4+2+4+0=13。因此,总成本为 kx+y=100⋅1+13=113。
在第二个测试用例中,你可以将第 1 行左移一次,第 2 行左移两次,第 3 行左移三次。最终网格变成:
010100010100101000.
共进行了 x=6 次操作,并且经过的路径上整数之和为 y=0。因此,总成本为 6⋅1+0=6。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?