Codeforces Round #634 (Div. 3) 比赛人数11922 慢慢的对Div. 3难度有了些感觉
[codeforces 1335C] Two Teams Composing 统计技能种类数量+统计同一技能最大数量
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址https://codeforces.com/contest/1335/problem/D
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
D - Anti-Sudoku | GNU C++17 | Accepted | 62 ms | 0 KB |
首先,需要更新的9个位置是固定的,如何寻找需要更新的位置
以下是需要更新的固定位置
154873(2)96
3(8)6592714
72964(1)835
86372514(9)
97(5)314628
4129(6)8357
6314579(8)2
(5)98236471
247(1)89563
如何快速寻找,可将样例中的输入数据,输出数据,同一行紧挨的放在一起,人眼就容易快速识别了,
手工算法如下
输入的第1行154873296
输出的第1行154873396 人眼快速识别出需要更新的数据2变成3
输入的第2行386592714
输出的第2行336592714 人眼快速识别出需要更新的数据8变成3
72964(1)835
729645835
86372514(9)
863725145
97(5)314628
979314628
4129(6)8357
412958357
6314579(8)2
631457992
(5)98236471
998236471
247(1)89563
247789563
注意,可以考虑需要更新的数据,在原来基础上增加1,
需要考虑特例,9增加1,变成了10,在代码中,将需要更改的9,统统变成了1
AC代码如下
#include <stdio.h>
char s[15][15];
int main(){
int t,i,j;
scanf("%d",&t);
while(t--){
for(i=1;i<=9;i++)
scanf("%s",s[i]+1);
s[1][7]=((s[1][7]=='9')?'1':(s[1][7]+1));
s[2][2]=((s[2][2]=='9')?'1':(s[2][2]+1));
s[3][6]=((s[3][6]=='9')?'1':(s[3][6]+1));
s[4][9]=((s[4][9]=='9')?'1':(s[4][9]+1));
s[5][3]=((s[5][3]=='9')?'1':(s[5][3]+1));
s[6][5]=((s[6][5]=='9')?'1':(s[6][5]+1));
s[7][8]=((s[7][8]=='9')?'1':(s[7][8]+1));
s[8][1]=((s[8][1]=='9')?'1':(s[8][1]+1));
s[9][4]=((s[9][4]=='9')?'1':(s[9][4]+1));
for(i=1;i<=9;i++)printf("%s\n",s[i]+1);
}
return 0;
}