#161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...
生活随笔
收集整理的這篇文章主要介紹了
#161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
試題描述給定n*n由0和1組成的矩陣,如果矩陣的每一行和每一列的1的數(shù)量都是偶數(shù),則認(rèn)為符合條件。 你的任務(wù)就是檢測(cè)矩陣是否符合條件,或者在僅改變一個(gè)矩陣元素的情況下能否符合條件。 "改變矩陣元素"的操作定義為0變成1或者1變成0。輸入格式輸入n + 1行,第1行為矩陣的大小n(0 < n < 100),以下n行為矩陣的每一行的元素,元素之間以一個(gè)空格分開。輸出格式如果矩陣符合條件,則輸出OK;如果矩陣僅改變一個(gè)矩陣元素就能符合條件,則輸出需要改變的元素所在的行號(hào)和列號(hào),以一個(gè)空格分開。如果不符合以上兩條,輸出Corrupt。樣例輸入
樣例輸入1
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1樣例輸入2
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1樣例輸入3
4
1 0 1 0
0 1 1 0
1 1 1 1
0 1 0 1樣例輸出
樣例輸出1
OK樣例輸出2
2 3樣例輸出3
Corrupt其它說(shuō)明
==1,則才輸出b[0]和c[0]的值,如果不滿足則輸出corrupt。因?yàn)轭}目要求的是只能修改一次!
二維數(shù)組//做法;先把每一列每一行遍歷一次,同時(shí)記錄每一行每一列奇數(shù)行和列的個(gè)數(shù),然后(重要的來(lái)了)如果奇數(shù)的(行和列)都==0,則輸出OK,如果行列都
==1,則才輸出b[0]和c[0]的值,如果不滿足則輸出corrupt。因?yàn)轭}目要求的是只能修改一次!
#include<stdio.h> #include<string.h> int main() {int a[101][101];int b[100],c[100];int n;int i,j,s1,s2;while(~scanf("%d",&n)){b[0]=0;c[0]=0;for(i=1,s1=0,s2=0;i<=n;i++){for(j=1;j<=n;j++){scanf("%d",&a[i][j]);if(a[i][j]==1){b[i]++;//記錄第i行的1的個(gè)數(shù);}}}for(j=1;j<=n;j++){for(i=1;i<=n;i++){if(a[i][j]==1){c[j]++;//記錄第j列的1的個(gè)數(shù);}}}for(i=1;i<=n;i++){if(b[i]%2!=0)//判斷第i行的1的個(gè)數(shù)是否為奇數(shù);{s1++;b[0]=i;//記錄有幾個(gè)奇數(shù)行;下面對(duì)于列的判斷同理;}if(c[i]%2!=0){s2++;c[0]=i;}}if(s1==0&&s2==0)printf("OK\n");else if(s1==1&&s2==1){printf("%d %d\n",b[0],c[0]);}elseprintf("Corrupt\n");memset(b,0,sizeof(b));memset(c,0,sizeof(c));}return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/Disyushen666/p/7944794.html
總結(jié)
以上是生活随笔為你收集整理的#161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 求叽里呱啦英语K1-6网盘下载我有斑马语
- 下一篇: tarjan求强连通分量的思考