题目理解

  • “The number must be the difference of two numbers that are previously given”中:
    difference的意思;
    previously given包含了前面所有轮次出现的数字,外加裁判给出的数字(淘汰的选手当前的数字以及后面轮次给出的数字不算
  • “and must not be duplicated to any of the existed numbers.”中:
    existed numbers也包含了前面所有轮次出现的数字,外加裁判给出的数字(淘汰的选手当前的数字以及后面轮次给出的数字不算

点睛

  • set要换成unordered_set,否则测试点5过不了,运行超时
    参考来源(很优秀的一位博主)
  • 判断选手给出的数字是否是前面出现过的数字差方法
    我原先是把所有的差都存在set里面,然后去set查找是否存在这个数字,但是测试点5过不了,运行超时,还是上面这个博主,参考了她的做法,很好的思路:
bool isDiff(int x){// 只需要判断x+前面的任意一个数字后的结果是否出现在之前的数字中即可for(unordered_set<int>::iterator iter=hasNumber.begin();iter!=hasNumber.end();iter++){if(hasNumber.find(x+*iter)!=hasNumber.end()){return true;}}return false;
}
  • 注意致使选手出局的数字是不可以算在“previously given”和“existed numbers”里面的,否则测试点6过不了

代码

#include <iostream>
#include <cmath>
#include <unordered_set>
#include <vector>using namespace std;int number[11][1001];
unordered_set<int> hasNumber;// 记录是否出现了某个数字bool isDiff(int x){// 只需要判断x+前面的任意一个数字后的结果是否出现在之前的数字中即可for(unordered_set<int>::iterator iter=hasNumber.begin();iter!=hasNumber.end();iter++){if(hasNumber.find(x+*iter)!=hasNumber.end()){return true;}}return false;
}int main(int argc, char** argv) {int a,b;// 裁判给出的数 cin>>a>>b;int n,m;// n-玩家数量,m-游戏轮次cin>>n>>m;// 输入玩家在对应轮次给出的数字 for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>number[i][j];unordered_set<int> isOut;vector<int> winner;// 裁判给出的数字首先要放进去hasNumber.insert(a);hasNumber.insert(b);  // 列优先访问for(int j=1;j<=m;j++){        // 开始检查玩家的数字 for(int i=1;i<=n;i++){// 如果这位玩家已经淘汰了,那么他后面给出的数字不用考虑了 if(isOut.find(i)!=isOut.end()) continue;// 该玩家淘汰if(!isDiff(number[i][j])||hasNumber.find(number[i][j])!=hasNumber.end()){cout<<"Round #"<<j<<": "<<i<<" is out."<<endl;isOut.insert(i);}else{// 本轮赢家 // 最后一轮时需要统计最后赢家if(j==m){winner.push_back(i); }  hasNumber.insert(number[i][j]);}}} if(winner.size()==0){cout<<"No winner.";}else{cout<<"Winner(s):";for(int i=0;i<winner.size();i++)cout<<" "<<winner[i]; }return 0;
}

PTA Advanced 1169 The Judger C++相关推荐

  1. PTA(Advanced Level) 1077:Kuchiguse(C语言实现)

    PTA(Advanced Level) 1077:Kuchiguse(C语言实现) #include <stdio.h> #include <string.h> int mai ...

  2. PTA Advanced 1165 Block Reversing C++

    目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 点睛 代码 题目 Given a singl ...

  3. PTA Advanced 1166 Summit C++

    目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 领悟 知识补充 代码 题目 A summit ...

  4. 【PTA Advanced】1148 Werewolf - Simple Version(C++)

    目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sa ...

  5. 【PTA Advanced】1160 Forever(C++)

    目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 代码 题目 "Forever ...

  6. 阿里云ECS通用型g7云服务器支持vTPM第三代神龙架构性能评测

    查看全文 http://www.taodudu.cc/news/show-4441634.html 相关文章: 学习在kvm上创建vtpm vTPM环境部署(ubuntu) vTPM架构分析与环境部署 ...

  7. 2020年PAT甲级春季考试真题及答案

    1168 Prime Day The above picture is from Sina Weibo, showing May 23rd, 2019 as a very cool "Pri ...

  8. 【PTA】PAT (Advanced Level) Practice 1011-1014

    目录 1011 World Cup Betting 翻译: 代码:(查找元素) 1012 The Best Rank 翻译: 代码:(排序) 1013 Battle Over Cities 翻译: 代 ...

  9. Kaggle: House Prices: Advanced Regression Techniques

    Kaggle: House Prices: Advanced Regression Techniques notebook来自https://www.kaggle.com/neviadomski/ho ...

最新文章

  1. 存储 dict 的元素前是计算 key 的 hash 值?
  2. 小米路由器mini改打印服务器_如何把家里的闲置路由器用起来
  3. 岗位推荐 | 腾讯招聘自然语言处理方向实习生
  4. Linux(内核和用户态的)动态内存管理
  5. 忘记redhat linux root密码怎么办
  6. jquery1.9学习笔记 之选择器(基本元素四)
  7. java jni框架,Java JNI 简明教程(一)——传智播客JNI笔记(王泽佑)
  8. python中type为什么有main_python中 __name__及__main()__的妙处
  9. 简述osi参考模型各层主要功能_OSI参考模型各层主要功能
  10. FFmpeg的编解码(二)
  11. 高通平台音频调试常见问题点归纳
  12. 在java中调用python方法
  13. Atitit 架构之道 之 可读性可维护性架构之道 提升效率架构之道 attilax著 艾龙 著 1.1. Hybrid架构 1 1.2. 分层架构是使用最多的架构模式 Layers模式 也称Tie
  14. EXCEL以及VBA 函数讲解集合
  15. 《图论及其应用》学习笔记(图和简单图)
  16. Html网页设计-动漫网站设计
  17. apache 支持apk下载安装
  18. 计网笔记-计网总结-计网复习提纲-第一章.概述
  19. 贪婪洞窟2服务器维护,贪婪洞窟2开服表
  20. [JAVA]从零开始的“桌面宠物”之路(一):动画效果

热门文章

  1. 上海浦江镇python培训在职班
  2. 种子读取php,php读取torrent种子文件内容的方法(测试可用),_PHP教程
  3. Android推送实现原理
  4. REPMGR脑裂问题紧急处理步骤
  5. 读书笔记 - 《激荡十年,水大鱼大》
  6. golang html转成pdf,在Golang中从html创建pdf
  7. 基于Vue2实现的仿手机QQapp(支持对话功能,滑动删除....)—— 聊聊开发过程中踩到的一些坑与解决方案,以及个人感悟...
  8. 只有潮水退去后,才知道谁在裸泳
  9. [RK3288][Android5.1] 调试笔记 --- 编译libwebviewchromium.so出错
  10. Parameter - Out Of Values报错解决方法