poj 2260

设矩阵map[][],其中row[i] 表示i行和 ,col[j] 表示j列的和,r表示和为奇数的行个数,c表示和为奇数的列个数,di  dj  表示最后和为奇数的序列号。

判断矩阵是否是奇偶均势矩阵:

if (r==c==0)  满足条件

else if (r==c==1) 可以改变满足

else  “Corrupt”

代码如下:

#include <string.h>
#include <stdio.h>
const int max=101;
int row[max],col[max],r,c,di,dj;
void read (int n,int map[][max]){
	for (int i=0;i<n;i++)
		for (int j=0;j<n;j++)
			scanf ("%d",&map[i][j]);
	for (int i=0;i<n;i++){
		for (int j=0;j<n;j++){
			row[i] += map[i][j];
			col[i] += map[j][i];
		}
		if (row[i] & 1) r++,di=i;
		if (col[i] & 1) c++,dj=i;
	}
}
int main (){
	int n,map[max][max];
	while (~scanf ("%d",&n) && n){
		memset (row,0,sizeof (row));
		memset (col,0,sizeof (col));
		r=c=0;  //行数和列数和为奇数的个数
		read (n,map);
	//	printf ("r=%d,c=%d\n",r,c);
		if (r==c && r==0)
			puts ("OK");
		else if (r==c && r==1)
			printf ("Change bit (%d,%d)\n",di+1,dj+1);
		else
			puts ("Corrupt");
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值