10763

来源:互联网 发布:虚拟关注软件 编辑:程序博客网 时间:2024/06/15 08:28

紫书上习题5-4; 这道题用数组正好,一个 x 对应一个 y ,然后反过来判断一个 y 是否对应一个 x ,如果全部对应,则可以交换,如果有一个不对应,则不能交换;

#include <iostream>#include <algorithm>using namespace std;#define maxn 500100int S[maxn];void init(){    for(int i=0;i<maxn;i++){        S[i]=i;    }}void swap(int x,int y){    int t;    t=S[x];S[x]=S[y];S[y]=t;}bool judge(){    for(int i=0;i<maxn;i++){        if(S[i]!=i)            return false;    }    return true;}int main(){    int n;    while(cin>>n&&n!=0){     int flag=1,a,b;     init();     for(int i=0;i<n;i++){        cin>>a>>b;        swap(a,b);     }     if(judge()){        cout<<"YES"<<endl;     }     else        cout<<"NO"<<endl;    }    return 0;}


0 0
原创粉丝点击