求助,代码为何WA
  • 板块学术版
  • 楼主Themooncake
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/9/10 11:02
  • 上次更新2023/10/27 12:08:58
查看原帖
求助,代码为何WA
516353
Themooncake楼主2022/9/10 11:02

题目P2447 [SDOI2010] 外星千足虫 以下为代码

#include<bits/stdc++.h>
#define MAXX 1005
#define max(a,b) ((a)>(b))?(a):(b)
using namespace std;
/*
	显然方程数至少为n
	按照未知数的顺序,每次寻找第一条含有该未知数的方程进行操作
*/

int n,m;
int cnt=0;
int a[MAXX<<1][MAXX];
void input()
{
	scanf("%d%d",&n,&m);
	getchar();
	for(int i=1;i<=m;i++)
	{
		for (int j=1;j<=n;j++)
		a[i][j]=getchar()^48;
		getchar();//吃空格
		a[i][n+1]=getchar()^48;
		getchar();//吃\n
	}
}
void query()
{
	for (int i=1;i<=n;i++)
	{
		int j=i;
		while(!a[j][i]&&j<=m)
		++j;
		cnt=max(cnt,j);
		if (cnt>m)
		{
			printf("Cannot Determine");
			return;
		}
		if (i!=j)
		{
			for (int k=1;k<=n+1;k++)
			swap(a[i][k],a[j][k]);
		}
		for (j=1;j<=m;j++)
		{
			if (j==i||!a[j][i]) continue;
			for (int k=1;k<=n+1;k++)
			a[j][k]^=a[i][k];
		}//消元
	}
	printf("%d\n",cnt);
	for (int i=1;i<=n;i++)
	a[i][n+1]?printf("?y7M#\n"):printf("Earth\n");
}
int main()
{
//	freopen("exa.txt","r",stdin);
//	freopen("res.txt","w",stdout);
	input();
	query();
}

与一些思路类似的题解对了半天也没看出来是哪里出了问题,对拍也没啥效果

2022/9/10 11:02
加载中...