PTA Advanced 1169 The Judger C++
题目理解
- “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++相关推荐
- PTA(Advanced Level) 1077:Kuchiguse(C语言实现)
PTA(Advanced Level) 1077:Kuchiguse(C语言实现) #include <stdio.h> #include <string.h> int mai ...
- PTA Advanced 1165 Block Reversing C++
目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 点睛 代码 题目 Given a singl ...
- PTA Advanced 1166 Summit C++
目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 领悟 知识补充 代码 题目 A summit ...
- 【PTA Advanced】1148 Werewolf - Simple Version(C++)
目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sa ...
- 【PTA Advanced】1160 Forever(C++)
目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 代码 题目 "Forever ...
- 阿里云ECS通用型g7云服务器支持vTPM第三代神龙架构性能评测
查看全文 http://www.taodudu.cc/news/show-4441634.html 相关文章: 学习在kvm上创建vtpm vTPM环境部署(ubuntu) vTPM架构分析与环境部署 ...
- 2020年PAT甲级春季考试真题及答案
1168 Prime Day The above picture is from Sina Weibo, showing May 23rd, 2019 as a very cool "Pri ...
- 【PTA】PAT (Advanced Level) Practice 1011-1014
目录 1011 World Cup Betting 翻译: 代码:(查找元素) 1012 The Best Rank 翻译: 代码:(排序) 1013 Battle Over Cities 翻译: 代 ...
- Kaggle: House Prices: Advanced Regression Techniques
Kaggle: House Prices: Advanced Regression Techniques notebook来自https://www.kaggle.com/neviadomski/ho ...
最新文章
- 存储 dict 的元素前是计算 key 的 hash 值?
- 小米路由器mini改打印服务器_如何把家里的闲置路由器用起来
- 岗位推荐 | 腾讯招聘自然语言处理方向实习生
- Linux(内核和用户态的)动态内存管理
- 忘记redhat linux root密码怎么办
- jquery1.9学习笔记 之选择器(基本元素四)
- java jni框架,Java JNI 简明教程(一)——传智播客JNI笔记(王泽佑)
- python中type为什么有main_python中 __name__及__main()__的妙处
- 简述osi参考模型各层主要功能_OSI参考模型各层主要功能
- FFmpeg的编解码(二)
- 高通平台音频调试常见问题点归纳
- 在java中调用python方法
- Atitit 架构之道 之 可读性可维护性架构之道 提升效率架构之道 attilax著 艾龙 著 1.1. Hybrid架构	1 1.2. 分层架构是使用最多的架构模式 Layers模式 也称Tie
- EXCEL以及VBA 函数讲解集合
- 《图论及其应用》学习笔记(图和简单图)
- Html网页设计-动漫网站设计
- apache 支持apk下载安装
- 计网笔记-计网总结-计网复习提纲-第一章.概述
- 贪婪洞窟2服务器维护,贪婪洞窟2开服表
- [JAVA]从零开始的“桌面宠物”之路(一):动画效果
热门文章
- 上海浦江镇python培训在职班
- 种子读取php,php读取torrent种子文件内容的方法(测试可用),_PHP教程
- Android推送实现原理
- REPMGR脑裂问题紧急处理步骤
- 读书笔记 - 《激荡十年,水大鱼大》
- golang html转成pdf,在Golang中从html创建pdf
- 基于Vue2实现的仿手机QQapp(支持对话功能,滑动删除....)—— 聊聊开发过程中踩到的一些坑与解决方案,以及个人感悟...
- 只有潮水退去后,才知道谁在裸泳
- [RK3288][Android5.1] 调试笔记 --- 编译libwebviewchromium.so出错
- Parameter - Out Of Values报错解决方法