UVa 10763 - Foreign Exchange
2014-12-10 00:20
375 查看
第一次用了两重循环,结果TLE了。然后把每个学生对应到一个映射里,如果有意愿相同的那么数目加一,最后比较意愿相对的人数就OK了。说的有点乱,不过想出来了就很顺了。
#include<iostream> #include<map> #include<vector> using namespace std; struct Ex_student { int x, y; }; struct Ex_cmp { bool operator () (const Ex_student &k1, const Ex_student &k2) const { if(k1.x != k2.x) return k1.x < k2.x; if(k1.y != k2.y) return k1.y < k2.y; return false; } }; int main() { int n; while (cin >> n&& n) { bool exsit = true; vector<Ex_student> s; map<Ex_student, int, Ex_cmp> student_list; for(int i = 0; i < n; i++) { Ex_student student; cin >> student.x >> student.y; if(student_list.count(student)) student_list[student]++; else { student_list[student] = 1; } s.push_back(student); } for(int i = 0; i < n; i++) { Ex_student student; student.x = s[i].y; student.y = s[i].x; if(student_list.count(student)&& student_list[student] == student_list[s[i]]) ; else { exsit = false; break; } } exsit ? cout << "YES" << endl : cout << "NO" << endl; } return 0; }
相关文章推荐
- uva 10763 Foreign Exchange我认为我这种做法最符合题意!
- uva 10763 - Foreign Exchange
- UVa 10763 - Foreign Exchange
- UVa 10763 - Foreign Exchange
- UVA - 10763 Foreign Exchange(排序)
- uva 10763 多种方法
- 习题5-4 交换学生(Foreign Exchange, UVa 10763)
- uva 10763 - Foreign Exchange
- uva 10763 Foreign Exchange 交换生
- UVA10763--ForeignExchange
- Foreign Exchange uva 10763
- UVA 10763-Foreign Exchange(求入度出度是否相等)
- UVA 10763
- UVa 10763 Foreign Exchange
- uva 10763 Foreign Exchange(排序比较)
- UVA 10763 Foreign Exchange
- UVA - 10763 Foreign Exchange
- 【习题5-4 UVA-10763】Foreign Exchange
- UVa 10763 - Foreign Exchange
- UVA 10763 Foreign Exchange .