CF2096C.Wonderful City
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你是古伯兰王国一座城市的骄傲领导者。这座城市有 n2 栋建筑,排列成 n 行 n 列的网格。位于第 i 行第 j 列的建筑高度为 hi,j。
当城市中任意两个相邻建筑的高度都不相同时,这座城市才是美丽的。换句话说,必须满足以下条件:
- 不存在位置 (i,j)(1≤i≤n,1≤j≤n−1)使得 hi,j=hi,j+1;
- 不存在位置 (i,j)(1≤i≤n−1,1≤j≤n)使得 hi,j=hi+1,j。
A 公司有 n 名工人,B 公司也有 n 名工人。每名工人最多只能被雇佣一次。
雇佣 A 公司的第 i 名工人需要花费 ai 枚金币。雇佣后,该工人会:
- 将第 i 行所有建筑的高度增加 1。即,将 hi,1,hi,2,…,hi,n 都增加 1。
雇佣 B 公司的第 j 名工人需要花费 bj 枚金币。雇佣后,该工人会:
- 将第 j 列所有建筑的高度增加 1。即,将 h1,j,h2,j,…,hn,j 都增加 1。
请计算使城市变得美丽所需的最少金币数,如果不可能实现则返回 −1。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤100)。接下来是各个测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤1000)——网格的大小。
接下来每个测试用例的 n 行中,第 i 行包含 n 个整数 hi,1,hi,2,…,hi,n(1≤hi,j≤109)——第 i 行建筑的高度。
每个测试用例的下一行包含 n 个整数 a1,a2,…,an(1≤ai≤109)——雇佣 A 公司工人的费用。
每个测试用例的下一行包含 n 个整数 b1,b2,…,bn(1≤bj≤109)——雇佣 B 公司工人的费用。
保证所有测试用例的 n 之和不超过 1000。
输出格式
对于每个测试用例,输出一个整数——所需的最少金币数,如果不可能则输出 −1。
输入输出样例
输入#1
4 2 1 2 2 1 100 100 100 100 4 1 2 1 2 3 2 1 2 1 2 1 1 1 3 1 2 1 2 3 4 5 6 7 8 3 1 2 2 2 2 1 2 1 1 100 100 100 100 100 100 6 8 7 2 8 4 8 7 7 9 7 1 1 8 3 1 1 8 5 6 8 3 1 1 4 1 4 5 1 9 6 7 1 1 6 8 2 11 23 20 79 30 15 15 83 73 57 34 63
输出#1
0 14 -1 183
说明/提示
对于第一个测试用例,可以看到城市已经是美丽的,因此答案为 0。
对于第二个测试用例,我们可以雇佣 A 公司的第 2 名工人、A 公司的第 4 名工人和 B 公司的第 4 名工人:
- 初始状态:
1 2 1 2
3 2 1 2
1 2 1 1
1 3 1 2
- 雇佣 A 公司第 2 名工人后:
1 2 1 2
4 3 2 3
1 2 1 1
1 3 1 2
- 雇佣 A 公司第 4 名工人后:
1 2 1 2
4 3 2 3
1 2 1 1
2 4 2 3
- 雇佣 B 公司第 4 名工人后:
1 2 1 3
4 3 2 4
1 2 1 2
2 4 2 4
此时城市变得美丽,雇佣工人的总费用为 2+4+8=14,这是可能的最小费用。
对于第三个测试用例,无论如何操作都无法使城市变得美丽,因此答案为 −1。
翻译由 DeepSeek V3 完成
输入解题思路,AI测评打分。不知道怎么写?