日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Uva 11464 偶数矩阵

發布時間:2025/7/25 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Uva 11464 偶数矩阵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:https://uva.onlinejudge.org/external/114/11464.pdf

和開關問題類似,只不過現在是用的位運算操作更簡單了,其中要注意的是,只能將0變成1.

1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define inf 0x3f3f3f3f 6 7 int a[20][20]; 8 int b[20][20]; 9 int n; 10 11 int dr[3] = {-1,0,0}; 12 int dc[3] = {0,-1,1}; 13 14 int sum(int di,int dj) { 15 int ans = 0; 16 for(int i=0;i<3;i++) 17 { 18 int dx = di + dr[i]; 19 int dy = dj + dc[i]; 20 21 if(dx>=0&&dx<n&&dy>=0&&dy<n) 22 ans +=b[dx][dy]; 23 } 24 return ans; 25 } 26 27 bool test(int i) { 28 int x = sum(n-1,i); 29 if(x%2) 30 return false; 31 else return true; 32 } 33 34 int check(int s) { 35 36 37 for(int i=0;i<n;i++) 38 if(s&(1<<i)) b[0][i] = 1; 39 else b[0][i] = 0; 40 41 for(int i=0;i<n-1;i++) 42 { 43 for(int j=0;j<n;j++) { 44 int x = sum(i,j); 45 if(x%2==0) 46 b[i+1][j] = 0; 47 else b[i+1][j] = 1; 48 } 49 } 50 51 for(int i=0;i<n;i++) 52 if(!test(i)) 53 return inf; 54 55 int ans = 0; 56 for(int i=0;i<n;i++) { 57 for(int j=0;j<n;j++) 58 { 59 if(a[i][j]==1&&b[i][j]==0) 60 return inf; 61 } 62 } 63 64 for(int i=0;i<n;i++) 65 { 66 for(int j=0;j<n;j++) 67 if(a[i][j]!=b[i][j]) 68 ans++; 69 } 70 return ans; 71 } 72 73 int main() 74 { 75 int kase = 1,t; 76 scanf("%d",&t); 77 while(t--) { 78 79 scanf("%d",&n); 80 81 for(int i=0;i<n;i++) 82 for(int j=0;j<n;j++) 83 scanf("%d",&a[i][j]); 84 85 int ans = inf; 86 for(int s=0;s<(1<<n);s++) 87 ans = min(ans,check(s)); 88 89 printf("Case %d: ",kase++); 90 if(ans==inf) 91 printf("-1\n"); 92 else printf("%d\n",ans); 93 } 94 return 0; 95 }

?

轉載于:https://www.cnblogs.com/TreeDream/p/6357744.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Uva 11464 偶数矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。