比赛 20110730 评测结果 AAAAAAAAAA
题目名称 线段 最终得分 100
用户昵称 Pom 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-07-30 09:15:32
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;

const int MAXN=333;

int n,m,i,j,k,DAT,a[MAXN][MAXN];
bool flag;

int main()
{
	freopen("line.in","r",stdin);
	freopen("line.out","w",stdout);
	scanf("%d",&DAT);
	while (DAT--)
	{
		scanf("%d%d",&n,&m);
		for (i=1;i<=n;i++)
			for (j=1;j<=n;j++)
				a[i][j]=2;
		while (m--)
		{
			scanf("%d%d%d",&i,&j,&k);
			a[i][j]=k;
			a[j][i]=k;
		}
		flag=true;
		for (k=1;k<=n;k++)
			for (i=1;i<=n;i++)
				for (j=1;j<=n;j++)
					if (a[i][j]==2)
					{
						if (a[i][k]!=2 && a[k][j]!=2) a[i][j]=a[i][k] ^ a[k][j];
					}
					else
						if (a[i][k]!=2 && a[k][j]!=2 && a[i][k] ^ a[k][j]!=a[i][j]) flag=false;
		if (!flag) printf("No Answer\n");
		else printf("%d\n",a[1][n]);
	}
	return 0;
}