UVA 10763 Foreign Exchange
来源:互联网 发布:复制网站源码 编辑:程序博客网 时间:2024/06/05 20:38
题意:n个学生要当交换生,每个学生想从A校换到B校,交换条件是找到一个想要从B换到A的学生配对,每个学生只能配对一次,问这些学生能不能都成功交换。
思路:这题挺简单的,首先是配对的问题,由于对于每个学生,A和B是不同的,因此可以把学生分成两组,一组是A<B的,一组是A>B的,这样能配对的组合一定是第一组和第二组的两个学生,那么把这两个集合排序,然后依次看能否匹配即可。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<map>#include<queue>#include<set>#include<stack>#include<cmath>#include<vector>#define inf 0x3f3f3f3f#define Inf 0x3FFFFFFFFFFFFFFFLL#define eps 1e-9#define pi acos(-1.0)using namespace std;typedef long long ll;const int maxn=500000+10;struct Node{ int x,y; Node (){}; Node (int xx,int yy){x=xx;y=yy;}};Node S[maxn],T[maxn];bool cmp1(Node a,Node b){ return (a.x==b.x&&a.y<b.y)||(a.x<b.x);}bool cmp2(Node a,Node b){ return (a.y==b.y&&a.x<b.x)||(a.y<b.y);}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int n,m1,m2; while(~scanf("%d",&n)) { if(n==0) break; bool flag=true; m1=m2=0; int xx,yy; for(int i=0;i<n;++i) { scanf("%d%d",&xx,&yy); if(xx<yy) S[m1++]=Node(xx,yy); else T[m2++]=Node(xx,yy); } if(m1!=m2) flag=false; else { sort(S,S+m1,cmp1); sort(T,T+m1,cmp2); for(int i=0;i<m1;++i) if(S[i].x!=T[i].y||S[i].y!=T[i].x) {flag=false;break;} } if(flag) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- UVa 10763 - Foreign Exchange
- UVa 10763 - Foreign Exchange
- uva 10763 - Foreign Exchange
- uva 10763 - Foreign Exchange
- Foreign Exchange uva 10763
- UVa 10763 - Foreign Exchange
- Uva-10763-Foreign Exchange
- UVa 10763 - Foreign Exchange
- UVa 10763 - Foreign Exchange
- UVa 10763: Foreign Exchange
- UVA 10763 Foreign Exchange
- UVa 10763 - Foreign Exchange
- uva 10763 - Foreign Exchange
- uva 10763 Foreign Exchange
- uva 10763 Foreign Exchange
- uva 10763 Foreign Exchange
- UVA 10763 Foreign Exchange
- uva 10763Foreign Exchange
- “多负载识别监控平台(上位机)”技术细节 之Unit2-Form2用户电量查询显示界面
- JQuery EasyUI 运行报错 “Jquery未定义”
- 备份架构 — 三种基本备份拓扑
- Excel中ISERROR()函数
- gcc编译参数-fPIC的一些问题
- UVA 10763 Foreign Exchange
- 地基工friend class
- tar压缩解压缩命令详解z
- java中常见算法2
- Comparison Predicates
- MinGW 编译libwebsockets
- Activity的四种启动模式
- C++友元friend --c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作
- 黑马程序员--十一、Java1.5部分新特性