做了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 分) 经验分享与心路历程相关推荐

  1. 【PAT】2020年春季考试乙级题目、答案、摸鱼、游记、93分

    T1 对称日 (15分) 7-1 对称日 (15分) 央视新闻发了一条微博,指出 2020 年有个罕见的"对称日",即 2020 年 2 月 2 日,按照 年年年年月月日日 格式组 ...

  2. 【PAT】2020年春季考试划水准备贴

    1.起因 因为之前NOIP凉了,所以算法竞赛没拿到任何加分加好感项,感觉白敲了三年代码 偶然间看到这个而且感觉挺简单,就试试三位一体有没有用,或者暑假实习,再不济反正把乙考了大学在水甲级和顶级凑一凑考 ...

  3. 【PAT甲级题解】1097 Deduplication on a Linked List (25分)

    Deduplication意为重复数据消除,Deplicated意为复制,是deduplication的过去式,题干大意为给定一个单链表L要求你对每一个结点的值判断,如果这个值的绝对值是第一次出现,那 ...

  4. 【PAT甲级 stack queue的使用】1051 Pop Sequence (25 分) C++ 全部AC

    题目 思路 维护三个集合:核心栈.数字队列.目标队列 详细思路见注释 题解 C++ #include<iostream> #include<stack> #include< ...

  5. 南京理工计算机考研经验,南京理工大学2020社会工作初试391分经验分享

    南京理工大学2020社会工作初试391分经验分享本站小编 免费考研网/2020-02-27 2020考研南京理工社会工作专业经验贴 初试总分391 政治68 英二62 原理126 实务135 下面是我 ...

  6. PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642

    PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...

  7. python 判断该地址 文件创建时间2020年10月14日14时25分32秒 文件最后一次访问时间 文件最后一次修改时间

    #1.判断该地址 #1.文件名 #2.文件路径 #3.文件扩展名 #4.文件创建时间2020年10月14日14时25分32秒 #5.文件最后一次访问时间 #6.文件最后一次修改时间 #7.文件的大小( ...

  8. 【PAT】2020年秋季考试划水准备贴

    1.环境 1.时间 PAT一年有三次考试,春季(2-3),秋季(8-9)和冬季(11-12) 本次考试时间: 2020/09/05 13:30:00 2.地点 PAT在非浙江地区(比如上海),往往都只 ...

  9. 2020团队程序设计天梯赛 L2-2 口罩发放 (25分)

    2020团队程序设计天梯赛 赛后听许多人感慨,火锅火锅吃不掉,彩票彩票刮不开,调和平均也调不和,而像我这种口罩发不下去的人也在大多数吧 L2-2 口罩发放 (25分) 为了抗击来势汹汹的 COVID1 ...

  10. PAT(甲级)2020年春季考试 7-4 Replacement Selection

    这种复杂的模拟题,对于我这种菜鸡,只能是根据自己的理解,去把题目给演示出来,然后结合测试用例,一点一点debug+打印输出,的确耗时,所以考试要是遇到就放最后吧. 把这题做出来,我的一个收获是,学会了 ...

最新文章

  1. influxdb tsm文件_利用InfluxDB+Grafana搭建Flink on YARN作业监控大屏
  2. 记录 centos samba 安装
  3. ActiveMQ 实现消息接收发送
  4. 隐马尔科夫模型HMM学习最佳范例
  5. 十折交叉验证和混淆矩阵
  6. STM32F4 之STM32CubeMx编程学习
  7. idea的设置,导致list长度只有1000
  8. 信必优成功案例 – 中国网络电视台(CNTV)
  9. 文献阅读---普通狗牙根阳江基因组单倍型解析与基因组稳定性和匍匐性研究
  10. android app wifi密码,无广告查看wifi密码的软件-WiFi密码查看清爽版app下载V999安卓版-西西软件下载...
  11. 70 Three.js 导入STL格式的模型
  12. fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)
  13. USB 发展 缺陷 与 未来
  14. JS 沙箱隔离简单实现
  15. wp8手机用得真憋屈
  16. 鸿蒙之境法有三乘,神都夜行录
  17. 这些宜家促销品改造后,竟然可以这么有格调!
  18. 分布式持久内存文件系统Octopus(ATC-17 )分析(五)
  19. 安装包UI美化之路-升级安装与静默安装一键打包
  20. Python-EXECL批量打印

热门文章

  1. 上行带宽和下行带宽是什么意思?各有什么作用?
  2. 统计相关系数(3)——Kendall Rank(肯德尔等级)相关系数及MATLAB实现
  3. hdu6184 Counting Stars(三元环统计)
  4. java学士后课程_java学士后课程
  5. OSPF三种验证配置
  6. python爬虫 requests使用代理ip
  7. 『免费+批量』英文论文下载神器
  8. 平均数、中位数、众数,在分析中如何使用?
  9. 计算机平均工资公式数值型,平均工资的计算方式
  10. 常用的Sql命令之造数据