欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

【 UVA - 10763 】Foreign Exchange (交换学生)pair+map

程序员文章站 2022-03-23 22:13:36
题目链接代码:#include #include #include using namespace std;typedef pair p; // A-->B (A想去B)int main(){int n;while(cin>>n && n){int a,b,cnt=n; //cnt表示目前n个需求map

题目链接

代码:

#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
typedef pair<int,int> p; // A-->B (A想去B)
int main()
{
	int n;
	while(cin>>n && n)
	{
		int a,b,cnt=n; //cnt表示目前n个需求
		map<p,int> m; //记录是否存在xx想去xx
		for(int i=0;i<n;i++)
		{
			cin>>a>>b;
			if(!m[{b,a}]) m[{a,b}]++; //如果不存在对方想来这边的,记录下这边的情况
			else m[{b,a}]--,cnt-=2; //如果存在对方想来这边,可以配对,减去一次对面到这边的情况,总需求减2
		}
		if(!cnt) cout<<"YES"<<endl; //总需求为0,都配对了
		else cout<<"NO"<<endl; 
	}
   	return 0;
}

本文地址:https://blog.csdn.net/weixin_45260385/article/details/108184282