UVA 10763 Foreign Exchange

思路:

每一个想从A学校换到B学校的学生必须找到一个唯一的从B学校换到A学校的学生。可以定义一个arr[ ]数组作为AB的关系,并对每一对关系进行swap(arr[a],arr[b]),如果交换成功,最后的对于每一个 i,必有arr[ i ]= i。

#include 
#include 
#include 

using namespace std;

const int maxn=500000+5;
int arr[maxn];

void init()
{
    for(int i=0;i>n&&n)
    {
        init();
        int a,b;
        for(int i=0;i>a>>b;
            swap(arr[a],arr[b]);
        }
        if(isok())
            cout<<"YES"<


你可能感兴趣的:(Online,Judge,算法入门经典)