标签:csp pac inpu for using 老师 连续 ora name
sample input:
4 5
2 2 3 1 2
3 4 5 1 4
2 3 2 1 3
2 2 2 4 4
sample output:
2 2 3 0 2
3 4 5 0 2
2 3 2 0 3
0 0 0 4 4
思路:
读懂题目意思,然后按行列遍历使得连续三个以上相邻的不小于3
刚开始看见图就想用bfs,发现不太对。。。
代码:
1 #include<iostream> 2 using namespace std; 3 int matrix[100][100]; 4 bool sign[100][100]; 5 6 int main() 7 { 8 int n,m; 9 cin>>n>>m; 10 for(int i=1;i<=n;i++) 11 for(int j=1;j<=m;j++) cin>>matrix[i][j]; 12 for(int i=2;i<n;i++) 13 for(int j=1;j<=m;j++) 14 { 15 if(matrix[i-1][j]==matrix[i][j]&&matrix[i][j]==matrix[i+1][j]) 16 { 17 sign[i-1][j]=1; 18 sign[i][j]=1; 19 sign[i+1][j]=1; 20 } 21 } 22 for(int i=1;i<=n;i++) 23 for(int j=2;j<m;j++) 24 { 25 if(matrix[i][j-1]==matrix[i][j]&&matrix[i][j]==matrix[i][j+1]) 26 { 27 sign[i][j-1]=1; 28 sign[i][j]=1; 29 sign[i][j+1]=1; 30 } 31 } 32 for(int i=1;i<=n;i++) 33 for(int j=1;j<=m;j++) if(sign[i][j]) matrix[i][j]=0; 34 35 for(int i=1;i<=n;i++) 36 { 37 for(int j=1;j<=m;j++) 38 { 39 if(j!=m) cout<<matrix[i][j]<<" "; 40 else cout<<matrix[i][j]<<endl; 41 }; 42 } 43 return 0; 44 }
标签:csp pac inpu for using 老师 连续 ora name
原文地址:https://www.cnblogs.com/liuzhuan-xingyun/p/13053625.html