离散题目12
来源:互联网 发布:js中控件隐藏和显示 编辑:程序博客网 时间:2024/09/21 09:27
离散题目12
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
给出两个集合,以及两个集合上的关系。判断该关系能不能构成函数
Input
多组输入。第一行数字表示集合A;第二行数字表示集合B;第三行一个数字N,表示关系的个数。以下N行,每行两个数字a b,用来描述关系a→b。0 < n < = 20000,集合A、B的大小不超过10000.
Output
每组数据输出一行,所给关系属于函数,输出’yes’ ,否则输出‘no’。
Example Input
1 2 3
4 5 6
3
1 4
2 5
3 6
1 2 3
4 5 6
3
1 4
1 5
1 6
Example Output
yes
no
Hint
Author
Think:
这题也算是很坑吧,后台数据对于函数的判断应该是有重复的元素的,因此要保证数组里面的元素不重复……用成C++ 的set 就可以了~
#include <bits/stdc++.h>using namespace std;set<int> a, b;int main(){ string aa, bb, buf; int t; while(getline(cin, aa)) { getline(cin, bb); stringstream a1(aa); while(a1>>buf) { sscanf(buf.c_str(), "%d", &t); a.insert(t); } stringstream b1(bb); while(b1>>buf) { sscanf(buf.c_str(), "%d", &t); b.insert(t); } int n, x, y; int flag = 0; cin>>n; map<int, int> P; P.clear(); for(int i=0;i<n;i++) { cin>>x>>y; if(a.count(x)&&b.count(y)) { if(P.count(x)!=0&&P[x]!=y) flag = 1; else P[x] = y; } } if(!flag) cout<<"yes"<<endl; else cout<<"no"<<endl; a.clear(); b.clear(); getline(cin, aa, '\n');//注意在这个地方,要用 //getline来把坑人的空格换行吸收进去~ } return 0;}
阅读全文
0 0
- 离散题目12
- 离散题目12
- 离散题目12
- 离散题目12
- 离散题目12
- 离散题目12
- 离散题目12
- 离散题目12
- sdut-离散题目12
- SDUT 3806 离散题目12
- 离散题目3
- 离散题目7
- sdut离散题目11
- sdut离散题目13
- sdut离散题目14
- 离散题目15
- 3799-->离散题目5
- 3800-->离散题目6
- 大一小白爬虫初试(初学者必看)
- java Thread、Runnable实例
- 对于进ACM这几个月来的小结
- 如何解决下载的navicat界面乱码问题 以及简单的破解
- C#删除数组(或顺序表等)指定位置上的元素
- 离散题目12
- Codeforces Round #415 (Div. 2) A. Straight «A»
- ArrayList分析
- GCC的使用
- java插入排序
- linux下fopen基本函数
- 使用Kotlin开发Android应用
- 实训之WSN(二)
- Gephi简介