离散题目3
来源:互联网 发布:淘宝卖家打印机 编辑:程序博客网 时间:2024/06/06 05:07
Think:
查寻 子集问题, 暴力 匹配判断啦~~~~~
没错 就是 这么 没道理~~~~
Problem Description
DaYu在新的学习开始学习新的数学知识,一天DaYu学习集合的时候遇到一个问题,他有两个集合A和B,他想知道A是不是B的子集。
Input
多组输入,每组的第一行有两个数n,m,0 < n,m < 10^5。表示集合A的大小和集合B的大小。第二行输入n个数表示集合A,第三行输入m个数表示集合B,|data_i| < 10^5
Output
如果A是B的子集,输出”true”,否则输出”false”。
Example Input
3 5
1 2 3
1 5 4 3 2
3 5
1 2 3
1 4 5 3 6
Example Output
true
false
#include<bits/stdc++.h>using namespace std;int a[100050];int b[100050];int main() { int n, m; while(cin >> n >> m) { bool flag = true; bool Flag; for (int i = 0;i <= n - 1;i ++) cin >> a[i]; sort(a, a + n); for (int i = 0;i <= m - 1;i ++) cin >> b[i]; sort(b, b + m); //两个 集合 都由从小到大进行排序 int i, j; int temp = 0; for (i = 0;i <= n - 1;i ++) { Flag = false; for (j = temp;j <= m - 1;j ++) //J从上一次查到的数字开始 继续匹配 { if (a[i] == b[j]) { temp = j; //表示查到 的数字 Flag = true;//表示 a[i] 在 b中 有出现 break; //若 a[i] 在 b中 有出现 则标记 后 跳出, 进行 下一个数字的判断。 } } if (Flag == false) //有数字 尚未出现 flag = false; // 有数字没出现 所以 不是 子集 if (flag == false) break; } if (flag == true) cout << "true" << endl; else cout << "false" << endl; } return 0; }
阅读全文
0 0
- 离散题目3
- 离散题目3
- 离散题目3
- 离散题目3
- 离散题目3
- 离散题目3
- sdut-离散题目3
- 离散题目3
- 离散题目集合--stl版题解--离散题目3
- 离散题目7
- sdut离散题目11
- sdut离散题目13
- sdut离散题目14
- 离散题目12
- 离散题目15
- 3799-->离散题目5
- 3800-->离散题目6
- 离散题目1
- php基础知识 11,php中的session
- POI操作Excel常用方法总结
- 谷歌浏览器设置在新标签页打开连接而不是覆盖当前页
- 群硕20170515Java研发实习生笔试题
- NIO学习
- 离散题目3
- .Net Warning 合集
- 11个冷门但好用的Word技巧
- sklearn的数据集模块datasets
- POJ 1171 Letter Game 笔记
- Verilog与VHDL的一些比较
- Java中的异常处理机制
- 单链表中头结点的有无. 并讨论下有无头结点在单链表的创建,打印,插入,逆置,删除中的区别.
- 【剑指offer】最小的k个数