1 条题解
-
0
构造好题,比较难想。
一个贪心思路是,直接每次找最大的,如果可以加一就加一。
但这是错的,因为对于相同的数,排序后的顺序不一样可能会无解。
容易发现加一实际上就是改变一个数的奇偶性。
又容易发现奇数一定不等于偶数。
所以直接构造奇偶交替的矩阵就好了。
代码
#include<bits/stdc++.h> using namespace std; int _,n,m; int main(){ scanf("%d",&_); while(_--){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++,puts(""))for(int j=1;j<=m;j++){ int x; scanf("%d",&x); if(((i+j)&1)!=(x&1))printf("%d ",x+1); else printf("%d ",x); } } }
- 1
信息
- ID
- 33
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者