返回顶部

Codeforces Round #682 (Div. 2) C. Engineer Artem (构造)

  • 题意:给你一个\(n\)x\(m\)的矩阵,你可以任意位置的元素+1,只能加一次,问你如何使得任意位置的元素不等于它四周的值.输出操作后的矩阵.

  • 题解:构造,矩阵中某两个下标的和的奇偶性一定和四周的都不同,因为题目保证有解,所以我们只要让下标和是奇数的填奇数,偶数的填偶数即可.

  • 代码:

    int t;
    int n,m;
    int g[110][110];
    
    int main() {
        ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        cin>>t;
        while(t--){
        	cin>>n>>m;
        
        	rep(i,1,n){
        		rep(j,1,m){
        			int cur=i+j;
        			cin>>g[i][j];
        			if(cur%2==0){
        				if(g[i][j]%2!=0) g[i][j]++; 
        			}
        			else{
        				if(g[i][j]%2==0) g[i][j]++;
        			}
        			cout<<g[i][j]<<' ';
        		}
        		cout<<'\n';
        	}
        }
     
        return 0;
    }
    
posted @ 2020-11-14 17:58  Rayotaku  阅读(229)  评论(0编辑  收藏  举报