您的位置:首页 > 其它

UVA - 10763 Foreign Exchange

2014-10-31 00:25 363 查看
题目大意:给出一系列的坐标,问是否每个坐标交换组坐标后都能有一个坐标想对应

解题思路:暴力破解
#include<cstdio>

const int maxn = 500005;
int arr[maxn];

void init() {
	for(int i = 0; i < maxn; i++)
		arr[i] = i;
}

void swap(int x, int y) {
	int t;
	t = arr[x];
	arr[x] = arr[y];
	arr[y] = t;
}

bool judge() {
	for(int i = 0; i < maxn; i++)
		if(i != arr[i])
			return false;
	return true;
}
long long num;
int main() {
	int num1, num2;
	while(scanf("%lld", &num) != EOF && num) {
		init();
		for(int i = 0; i < num; i++) {
			scanf("%d %d", &num1, &num2); 
			swap(num1,num2);
		}

		if(judge()) 
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: