cf-Global Round2-C. Ramesses and Corner Inversion(思维)
生活随笔
收集整理的這篇文章主要介紹了
cf-Global Round2-C. Ramesses and Corner Inversion(思维)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:http://codeforces.com/contest/1119/problem/C
題意:給兩個同型的由0、1組成的矩陣A、B,問A能否經(jīng)過指定的操作變成B,指定操作為在矩陣A中選定一個子矩陣(行數(shù),列數(shù)均>=2),該子矩陣的四個角的值能翻轉(zhuǎn),即1->0,0->1。
思路:結(jié)論--只要A、B的所有行的值之和同奇偶,所有列的值之和同奇偶就輸出Yes,否則輸出No。證明:經(jīng)過操作(1,1,x,y) (x>1,y>1)可將A中非第一行、第一列的元素變成和B一致,即Axy=Bxy。然后因為變化的過程每一行、每一列的奇偶不變,所以此時A、B的第一行、第一列的值自然也相等。
AC代碼:
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int n,m,rs[2][505],cs[2][505],tmp; 5 6 int main(){ 7 scanf("%d%d",&n,&m); 8 for(int i=0;i<2;++i) 9 for(int j=0;j<n;++j) 10 for(int k=0;k<m;++k){ 11 scanf("%d",&tmp); 12 rs[i][j]^=tmp; 13 cs[i][k]^=tmp; 14 } 15 int flag=1; 16 for(int i=0;i<n;++i) 17 if(rs[0][i]!=rs[1][i]){ 18 flag=0; 19 break; 20 } 21 if(flag){ 22 for(int i=0;i<m;++i) 23 if(cs[0][i]!=cs[1][i]){ 24 flag=0; 25 break; 26 } 27 } 28 if(flag) printf("Yes\n"); 29 else printf("No\n"); 30 return 0; 31 }?
轉(zhuǎn)載于:https://www.cnblogs.com/FrankChen831X/p/10672868.html
總結(jié)
以上是生活随笔為你收集整理的cf-Global Round2-C. Ramesses and Corner Inversion(思维)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 助力航天元器件管理“高可靠降成本”,赛思
- 下一篇: Android ViewModel+li