交换学生 (Foreign Exchange,UVa10763)
Posted secoding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交换学生 (Foreign Exchange,UVa10763)相关的知识,希望对你有一定的参考价值。
题目描述:
解题思路:
开一个数组,读入一次交换两个数,如果最后数组不变,即符合匹配
#include<iostream> #include<cstdio> #include<string> #include<algorithm> #define MAXN 500005 using namespace std; int arr[MAXN]; void swap(int a,int b){ int t=arr[a]; arr[a] = arr[b]; arr[b] = t; } bool isOk(){ for(int i=0; i<MAXN; ++i) if(arr[i]!=i) return false; return true; } int main(){ int n, i, a, b; while(scanf("%d",&n), n){ for(int i=0; i<MAXN; ++i) arr[i] = i; for(int i=0; i<n; ++i){ scanf("%d %d", &a, &b); swap(a, b); } if(isOk()) printf("YES "); else printf("NO "); } return 0; }
以上是关于交换学生 (Foreign Exchange,UVa10763)的主要内容,如果未能解决你的问题,请参考以下文章
紫书第五章训练 uva 10763 Foreign Exchange by crq