PAT 1065 乙等 (单身狗) c++版本
来源:互联网 发布:电商大数据 下载 编辑:程序博客网 时间:2024/05/21 11:32
思路: 用ID作为数组a1下标,输入参加派对的人时,a1[ID]++; a1数组中值为1的为参加派对的人 将已知夫妻关系的人顺序输入到数组a,奇偶成对(为奇数下标时,向前为夫妻下标;偶数下 标时,向后为夫妻下标。LOOP <顺序遍历a数组,判断(a1[a[i]]==1,表示此人在参加派对)?, 如果Y,则判断i的奇偶,根据规律判断自己的配偶有没有来(eg: a1[a[i+1]]==1 ?),如果 夫妻双方都在,a1[a[i]]++, num++(非单身人数);> POOL 。 遍历结束后,a1数组中值为1 的人都为单身,按要求打印即可。
注意:测试点3 判断id输出是否为5位。
#include <iostream>#include <string>using namespace std;string trans(int n){ string s = to_string(n); while (s.length() != 5){ s = "0" + s; } return s;}int main(){ int n(0); // 已知夫妻对数 cin >> n; int *a = new int[2 * n]; for (int i = 0; i < 2 * n; i++){ cin >> a[i]; } int a1[100000] = {}; int m(0); //参加派对的人数 cin >> m; for (int i = 0; i < m; i++){ int temp; cin >> temp; a1[temp]++; } int num(0); //记录参加派对的非单身人数 for (int i = 0; i < 2*n; i++){ if (a1[a[i]] !=0 ){ if (i % 2 == 0){ if (a1[a[i + 1]] !=0){ a1[a[i]]++; num++; } } else{ if (a1[a[i - 1]] != 0){ a1[a[i]]++; num++; } } } } if (m - num != 0) cout << m - num << endl; else cout << m - num; int d = m - num; for (int i = 0; i < 100000; i++){ if (a1[i] == 1){ d--; if (d != 0) cout << trans(i) << " "; else cout << trans(i); } } return 0;}
0 0
- PAT 1065 乙等 (单身狗) c++版本
- 单身狗(PAT-1065)
- PAT 1065单身狗
- PAT Basic 1065. 单身狗(25)(C语言实现)
- pat 乙级 1065 单身狗
- PAT乙级 1065 单身狗题目
- pat 单身狗
- PAT-B1065. 单身狗
- PAT 1065.单身狗
- PAT B1065. 单身狗
- PAT-B 1065. 单身狗
- [PAT-乙级]1065.单身狗
- 1065. 单身狗(25) PAT
- PAT 1017 乙等 (A除以B) C++版本
- PAT 1062 乙等 (最简分数)c++ 版本
- PAT 1067 乙等 (试密码) c++ 版本
- PAT 1070 乙等 (结绳) c++ 版本
- PAT 乙级 1065单身狗(25) 情人节做这题真的是太合适了~
- Oracle JDBC驱动, Tomcat连接池的坑
- 图的强连通tarjan学习
- 剑指offer:(15)代码的鲁棒性:链表中倒数第k个结点
- The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple C题What Kind of Fri
- 【linux】嵌入式Linux开发步骤
- PAT 1065 乙等 (单身狗) c++版本
- java学习(一)安装java环境 输出HelloWorld
- sort中cmp函数的编写问题
- Two Sum
- 双向BFS
- 稀疏表示学习
- POJ2155~Matrix(二维树状数组+思路)
- quagga
- NYOJ—飞翔【动态规划】