1059 C语言竞赛 (ID映射编号映射字符串)
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:
- 0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。
- 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!
- 2、其他人将得到巧克力。
给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。
输入格式:
输入第一行给出一个正整数 N(≤10e+4),是参赛者人数。随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组成)。接下来给出一个正整数 K 以及 K 个需要查询的 ID。
输出格式:
对每个要查询的 ID,在一行中输出 ID: 奖品
,其中奖品或者是 Mystery Award
(神秘大奖)、或者是 Minion
(小黄人)、或者是 Chocolate
(巧克力)。如果所查 ID 根本不在排名里,打印 Are you kidding?
(耍我呢?)。如果该 ID 已经查过了(即奖品已经领过了),打印 ID: Checked
(不能多吃多占)。
输入样例:
6
1111
6666
8888
1234
5555
0001
6
8888
0001
1111
2222
8888
2222
输出样例:
8888: Minion
0001: Chocolate
1111: Mystery Award
2222: Are you kidding?
8888: Checked
2222: Are you kidding?
看着N=10^4的大小想尝试用O(N^2)的暴力解法:
#include<cstdio> #include<cstring> const int max=10010; int prime[max],num=0; bool pp[max]={0};struct person{char *prize;int check=0;char id[5]; }p[10010];void init(int n){for(int i=2;;i++){if(!pp[i]){prime[num++]=i;if(num>=n) break;for(int j=i+i;j<max;j+=i){pp[j]=1;}}} }int main(){int n,nn,j;scanf("%d",&n);getchar();init(n);for(int i=1;i<=n;i++){scanf("%s",&p[i].id);if(i==1) p[i].prize="Mystery Award";else if(pp[i]) p[i].prize="Chocolate";else p[i].prize="Minion";}char temp[5];scanf("%d",&nn);for(int i=1;i<=nn;i++){scanf("%s",temp);printf("%s: ",temp);for(j=1;j<=n;j++){if(strcmp(temp,p[j].id)==0){if(p[j].check==0){p[j].check=1;printf("%s\n",p[j].prize);}else{printf("Checked\n");}break;}}if(j==n+1)printf("Are you kidding?\n");}return 0; }
提交时间 | 状态 | 分数 | 题目 | 编译器 | 耗时 | 用户 |
---|---|---|---|---|---|---|
2019/2/2 00:49:37 |
部分正确
|
14 | 1059 | C++ (g++) | 3 ms | Argentina_WU LEI |
测试点 | 结果 | 耗时 | 内存 |
---|---|---|---|
0 | 答案正确 | 3 ms | 512 KB |
1 | 运行超时 | 0 ms | 0 KB |
2 | 运行超时 | 0 ms | 0 KB |
3 | 答案正确 | 3 ms | 512 KB |
只得了14/20分,所以此类题还是不能抱有侥幸,需要哈希映射的思路:
#include<cstdio> const int maxn=10010; int I[maxn]={0};//chushihuawei0 char a[5][20]={"Are you kidding?","Mystery Award","Minion","Chocolate","Checked"};bool isPrime(int x){if(x<=1) return false;for(int i=2;i*i<=x;i++)if(x%i==0) return false;return true; }int main(){int n,ID;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&ID);if(i==1) I[ID]=1;else if(isPrime(i)) I[ID]=2;else I[ID]=3;}int m,query;scanf("%d",&m);for(int i=1;i<=m;i++){scanf("%d",&query);printf("%04d: %s\n",query,a[I[query]]);if(I[query]) I[query]=4;}return 0; }
书中给出的上述代码既简短,思路也很好(默认为“Are you kidding?”)
转载于:https://www.cnblogs.com/exciting/p/10347425.html
1059 C语言竞赛 (ID映射编号映射字符串)相关推荐
- C++学习之路 | PTA乙级—— 1059 C语言竞赛 (20 分)(精简)
1059 C语言竞赛 (20 分) C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份"神秘大奖"(比如很 ...
- 【JAVA】PAT 乙级 1059 C语言竞赛(测试点1、2超时) 内含1-10000的素数表和0-10000是否素数的boolean值
[JAVA]PAT 乙级 1059 C语言竞赛(测试点1.2超时) 以下是1-10000的素数,和0-10000的素数是不是素数的boolean值 0-10000是不是素数的boolean 值 题目链 ...
- JAVA两年5009_【JAVA】PAT 乙级 1059 C语言竞赛(测试点1、2超时) 内含1-10000的素数表和0-10000是否素数的boolean值...
[JAVA]PAT 乙级 1059 C语言竞赛(测试点1.2超时)题目链接 C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份 ...
- PAT乙 1059. C语言竞赛
1059. C语言竞赛(20) C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0. 冠军将赢得一份"神秘大奖"(比如很巨大 ...
- 1059. C语言竞赛(20)
C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0. 冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集--). 1 ...
- 【超高效代码】1059 C语言竞赛 (20分)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠 ...
- 1059 C语言竞赛(PAT乙级 C++)
题目 C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集--) ...
- 1059. C语言竞赛(20)-PAT乙级真题
C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0. 冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集--). 1 ...
- 【PAT乙级】1059 C语言竞赛 (20 分)
题目地址 #include<bits/stdc++.h> using namespace std; int n,k; string s[5]={"","Mys ...
最新文章
- JavaScript基础(一) 数据类型
- 【转】android开发工具Eclipse,androidStudio,adt网盘下载--不错
- 一些知识点的初步理解_4(协方差矩阵,ing...)
- 用python读取股票价格_使用Python写一个量化股票提醒系统
- 关于viewport我自己的理解
- Moodle: 登记学生,检测学生是否存在在课程 Check if user is enrolled or enroll a user in course...
- 04737 c++ 自学考试2019版 第四章课后程序设计题1
- jdbc url链接加时区正确方法
- Centos 7安装报错:Warning:dracut-initqueue timeout - starting timeout scripts
- ubuntu的文件路径
- 无线扫码枪 服务器查询异常,扫描枪常见问题
- cadence Allegro17.2关闭start page 界面方法
- 仓库如何盘点?使用盘点机盘点有什么好处?仓库盘点方法?
- 老男孩教育学习linux决心书
- 【kaggle】印度语和泰米尔语问答赛题baseline
- 口袋西游150服务器维护,口袋西游版本更新披露 幽冥界场景首曝
- vue练手02之表格处理
- js 验证身份证号码正确性
- java qlv转mp4 代码_独家的kux如何转成常用的mp4格式?快速将kux转mp4的技巧
- 互联网女皇疫情报告,数字化企业将在今后竞争中获得优势
热门文章
- 《精解Windows8》——1.2 告别开始按钮进入“开始”屏幕时代
- JAVA中String类
- 新装WIN7 UPDATE 无法更新
- 【分享】U盘大小的随身电脑 – Cotton Candy
- python tkinter 基本用法
- DARPA Grand挑战赛Overbot的软硬件架构,轨迹规划和车辆控制
- PHP统计链接跳转的次数,如何在PHP页面统计某链接的点击数
- mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...
- 广东省的盆友们,这波退税及时雨你赶上了吗?
- Web3.0网关Deeper Network计划于本月末在四个平台上进行IDO