PAT(甲级)2020年春季考试 7-2 The Judger (25 分) 经验分享与心路历程
做了1个小时,过样例
#include <bits/stdc++.h>
using namespace std;unordered_map<int, bool> exist;
unordered_map<int, bool> difference;
vector<vector<int>> input;
//玩家的下标是直接从1到n开始的
unordered_map<int, bool> out_game;int main()
{
#ifndef ONLINE_JUDGEFILE* s;freopen_s(&s, "in.txt", "r", stdin);
#endif // !ONLINE_JUDGE//我们现在首先需要把这个数据做一个拆分//做差比较的过程需要加入,//一个是做差的表,一个是已经加入数值的表//一个数需要和这些表进行比较,必须要存在,如果不存在的话就直接判断错误int n1, n2;cin >> n1 >> n2;//这两个数就要先做差然后加入做差的表//做差的时候必须被减数较大,不能小于这些的数值,最后的结果不能是负的//每轮的数据我们用嵌套的向量来保存用户的输入信息exist[n1] = true;exist[n2] = true;if (n1 > n2) {difference[n1 - n2] = true;//exist[n1 - n2] = true;}else {difference[n2 - n1] = true;//exist[n2 - n1] = true;}//之后我们把整组的这个数据给加入的向量里面int n, m;cin >> n >> m;//大小设置成n+1input.resize(n + 1);int t;for (int i = 1; i <= n; i++) {for (int j = 0; j < m; j++) {cin >> t;input[i].push_back(t);}}//在录入完用户数据以后需要按照一轮轮的进行处理,我们数据录入以后首先是要考虑会不会和已有的数据重复了//在一轮轮的时候我们需要遍历每个玩家给出的数据,判断的标准就是//轮次在遍历的时候是固定的,我们需要有一个数组来淘汰//相关的内容,如果说玩家出局了,我们把向量清空来进行标记//或者开一个out的数组,在查询之前首先进行检查//一般来说不要把相关的原始数据清空,作为一个//我们在读到这个相关的数据的时候,我们在做差完也需要把相关的数据加入存在数组//存在数组里面有那么多的数据,for (int i = 0; i < m; i++) {vector<int> out;//一轮里面可能需要淘汰多个的数据,在多轮结束以后,如果未被标记的话就认为是胜出的玩家for (int j = 1; j <= n; j++) {//j代表的是玩家的下标if (out_game[j] != true) {if (exist[input[j][i]] != true) {//如果元素已经存在的话,需要考虑其是否已经在系统之前探索的做差的范围里面if (difference[input[j][i]] == true) {//在做差的范围里面的话,需要把它已经存在,我们以后尽量用true来表示存在关系//我们首先需要把这个元素和已经存在的那些元素进行做差,再把做差之后的结果加入//到做差的集合里面,然后把这个元素标记到存在数组里面for (auto it = exist.begin(); it != exist.end(); it++) {if (it->first > input[j][i]) {difference[it->first - input[j][i]] = true;}else {difference[input[j][i] - it->first] = true;}}exist[input[j][i]] = true;}else {//如果不在做差的范围里面out_game[j] = true;out.push_back(j);}}else {//如果一个值已经存在,我们需要把这个用户标记为出局out_game[j] = true;//j代表的是玩家的下标out.push_back(j);}}}if (out.size() == 1) {printf("Round #%d: %d is out.\n",i+1,out[0]);}else if (out.size() > 1) {sort(out.begin(),out.end());cout << out[0];for (int i = 1; i < out.size(); i++) {cout << " " << out[i];}cout << endl;}}//在几轮做完以后,判断相关的数组vector<int> winner;for (int i = 1; i <= n; i++) {if (out_game[i] != true) {winner.push_back(i);}}if(winner.size()!=0){sort(winner.begin(), winner.end());cout << "Winner(s):";for (int i = 0; i < winner.size(); i++) {cout << " " << winner[i];}cout << endl;}else {cout << "No winner.";}return 0;
}
PAT(甲级)2020年春季考试 7-2 The Judger (25 分) 经验分享与心路历程相关推荐
- 【PAT】2020年春季考试乙级题目、答案、摸鱼、游记、93分
T1 对称日 (15分) 7-1 对称日 (15分) 央视新闻发了一条微博,指出 2020 年有个罕见的"对称日",即 2020 年 2 月 2 日,按照 年年年年月月日日 格式组 ...
- 【PAT】2020年春季考试划水准备贴
1.起因 因为之前NOIP凉了,所以算法竞赛没拿到任何加分加好感项,感觉白敲了三年代码 偶然间看到这个而且感觉挺简单,就试试三位一体有没有用,或者暑假实习,再不济反正把乙考了大学在水甲级和顶级凑一凑考 ...
- 【PAT甲级题解】1097 Deduplication on a Linked List (25分)
Deduplication意为重复数据消除,Deplicated意为复制,是deduplication的过去式,题干大意为给定一个单链表L要求你对每一个结点的值判断,如果这个值的绝对值是第一次出现,那 ...
- 【PAT甲级 stack queue的使用】1051 Pop Sequence (25 分) C++ 全部AC
题目 思路 维护三个集合:核心栈.数字队列.目标队列 详细思路见注释 题解 C++ #include<iostream> #include<stack> #include< ...
- 南京理工计算机考研经验,南京理工大学2020社会工作初试391分经验分享
南京理工大学2020社会工作初试391分经验分享本站小编 免费考研网/2020-02-27 2020考研南京理工社会工作专业经验贴 初试总分391 政治68 英二62 原理126 实务135 下面是我 ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- python 判断该地址 文件创建时间2020年10月14日14时25分32秒 文件最后一次访问时间 文件最后一次修改时间
#1.判断该地址 #1.文件名 #2.文件路径 #3.文件扩展名 #4.文件创建时间2020年10月14日14时25分32秒 #5.文件最后一次访问时间 #6.文件最后一次修改时间 #7.文件的大小( ...
- 【PAT】2020年秋季考试划水准备贴
1.环境 1.时间 PAT一年有三次考试,春季(2-3),秋季(8-9)和冬季(11-12) 本次考试时间: 2020/09/05 13:30:00 2.地点 PAT在非浙江地区(比如上海),往往都只 ...
- 2020团队程序设计天梯赛 L2-2 口罩发放 (25分)
2020团队程序设计天梯赛 赛后听许多人感慨,火锅火锅吃不掉,彩票彩票刮不开,调和平均也调不和,而像我这种口罩发不下去的人也在大多数吧 L2-2 口罩发放 (25分) 为了抗击来势汹汹的 COVID1 ...
- PAT(甲级)2020年春季考试 7-4 Replacement Selection
这种复杂的模拟题,对于我这种菜鸡,只能是根据自己的理解,去把题目给演示出来,然后结合测试用例,一点一点debug+打印输出,的确耗时,所以考试要是遇到就放最后吧. 把这题做出来,我的一个收获是,学会了 ...
最新文章
- influxdb tsm文件_利用InfluxDB+Grafana搭建Flink on YARN作业监控大屏
- 记录 centos samba 安装
- ActiveMQ 实现消息接收发送
- 隐马尔科夫模型HMM学习最佳范例
- 十折交叉验证和混淆矩阵
- STM32F4 之STM32CubeMx编程学习
- idea的设置,导致list长度只有1000
- 信必优成功案例 – 中国网络电视台(CNTV)
- 文献阅读---普通狗牙根阳江基因组单倍型解析与基因组稳定性和匍匐性研究
- android app wifi密码,无广告查看wifi密码的软件-WiFi密码查看清爽版app下载V999安卓版-西西软件下载...
- 70 Three.js 导入STL格式的模型
- fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)
- USB 发展 缺陷 与 未来
- JS 沙箱隔离简单实现
- wp8手机用得真憋屈
- 鸿蒙之境法有三乘,神都夜行录
- 这些宜家促销品改造后,竟然可以这么有格调!
- 分布式持久内存文件系统Octopus(ATC-17 )分析(五)
- 安装包UI美化之路-升级安装与静默安装一键打包
- Python-EXECL批量打印