UVa 10763 - Foreign Exchange(结构体排序)

有n个学生要当交换生,输入每个人的目标地和原始地,学生两两交换,问能否交换成功。

用结构体排序做的,两个vector分别保存交换前和交换后的学生,对比目标地和原始地是否完全相同,相同即可完成交换。

#include
#include
#include
using namespace std;
struct candidate{
    int a;
    int b;
};
vectorcd;
vectorexcd;
int n;
candidate x;
bool compare(candidate x,candidate y){
    if(x.a!=y.a) return x.a>n&&n){
        int t=n;
        for(int i=0;i>x.a>>x.b;
            cd.push_back(x);
            swap(x.a,x.b);
            excd.push_back(x);
        }
        sort(cd.begin(),cd.end(),compare);
        sort(excd.begin(),excd.end(),compare);
        for(int i=0;i


这是最初的代码:

超时了。

#include
#include
using namespace std;
vectora;
vectorb;
int n,x,y;
int main()
{
    while(cin>>n&&n)
    {
        int t=1;
        for(int i=0;i>x>>y;
            a.push_back(x);
            b.push_back(y);
        }
        for(int i=0;i

你可能感兴趣的:(算法竞赛入门经典,(第二版),第五章,C++与STL入门)