洛谷 P3692 [PUB1]夏幻的考试
题目背景
夏之幻是软件工程系的大神,学校把举办考试的任务交给她了。
题目描述
某大学软工专业要举办一场笔试,学生们要在机读答题卡上填写答案来进行答题。学校把机读卡识别任务交给了夏之幻,但是这套系统的需求太复杂了,她还要做自己的其他项(you)目(xi),所以她想让你来帮忙实现一部分功能。
试卷分卷头,单选题两部分。
夏幻大神已经写好了识别程序,因此卷头和答案将直接以数字信息的形式呈现给你,你要实现下面几个功能:
需要处理T张试卷,按顺序检查下列选项。
1.检查考号的填写是否准确。
输入信息的格式:
一行,一个16位无符号二进制数id。表示考生的考号为id,正确的考号范围在十进制下是1~10000。
如果考号有错误,输出一行“Wrong ID”并结束对这张试卷的处理(剩下两个选项的数据依然要读入,但不输出任何内容),不含引号。如果考号正确,输出一行,“ID: ”+一个整数,表示考号的十进制形式。不含引号。
无需考虑考号是否重复,只要在范围内均为正确。
2.检查试卷类型是否正确。
输入信息格式:
一行,两个整数,中间无分隔,只能是0或者1。第一个整数表示试卷类型A是否被涂黑(0表示未涂黑,1表示涂黑),第二个整数表示试卷类型B是否涂黑。其实试卷类型可以由二进制考号的最后一位得到,0表示A卷,1表示B卷,你只需要检查考生填涂的是否正确。
如果考生将试卷类型正确填涂(填涂且只填涂了正确的那一项),输出一行“Type Correct”,否则输出一行“Type Incorrect”,不含引号。无论试卷类型是否填涂正确,你还需要接着处理这张试卷。
3.给单选题打分。
单选题的数量n和标准答案将会在录入第一张试卷前给出。
考生答案的输入格式:
n行,每行4个整数,中间无分隔。每个整数是0或1。
按顺序分别代表A,B,C,D是否被涂黑(0表示未涂黑,1表示涂黑)。考生回答正确当且仅当该题正确答案的位置被涂黑,且错误答案的位置未被涂黑。
输出一行,一个四舍五入到小数点后1位的浮点数,表示考生的得分,满分为100分,每个题的分数相同。
输入输出格式
输入格式:
第一行两个整数T,n,空格分开,含义见题目描述。
接下来一行一个字符串s,长度为n,每个字符是大写字母A,B,C,D中的一个,第i个字符表示单选题i的答案。
接下来T*(n+2)行含有T组信息,表示每张试卷的内容,格式见题目描述。
输出格式:
对于每张试卷,输出评判结果,格式见题目描述。两张试卷的评判结果之间空一行。
输入输出样例
2 5
ABCAD
0000000011111111
01
1000
0010
0100
1000
0010
1001001001001001
01
0001
1010
0111
1111
0000
ID: 255
Type Correct
40.0 Wrong ID
3 3
ABC
0000000000000000
01
1111
0001
0100
0000000000000010
10
1000
0100
0010
0000000000000011
11
0001
0000
0010
Wrong ID ID: 2
Type Correct
100.0 ID: 3
Type Incorrect
33.3
5 31
ACAACCDDBBDADDCBCACCDBCAACAAAAC
0000101111000001
10
1000
0010
1000
1111
0010
0010
0001
0001
0100
0100
0001
1000
0001
0001
0010
1111
0010
1000
0010
0010
0001
0100
1111
1000
1000
0010
1000
0100
1000
1000
0010
0000010101001111
10
1000
0010
1000
1000
0010
0010
0001
0001
0100
0100
0001
1000
0001
0001
0010
0100
1000
1000
0000
0010
0001
0100
0010
1000
1000
0010
1000
1000
0000
0000
0010
0001110001100110
11
1000
0010
1000
1000
0010
0010
0001
0001
0100
0100
0001
1000
0010
0100
0010
0100
0010
0100
0010
0010
0001
0100
0010
1000
1000
0010
1000
1111
1000
1000
0010
0001001111110001
10
1010
0010
1000
1000
0010
0010
0001
0001
0100
0100
0010
1000
0001
0001
0010
0100
0010
1000
0010
0010
0001
0100
0010
1000
1000
0010
1000
1000
1000
1000
0010
0001110010000100
10
1000
0010
1000
1000
0000
0010
0001
0001
0100
0100
0001
1000
0001
0001
0001
0100
0010
1000
0010
0010
0001
0100
0010
1000
1000
0010
1000
1000
0000
1000
0001
ID: 3009
Type Incorrect
87.1 ID: 1359
Type Incorrect
87.1 ID: 7270
Type Incorrect
87.1 ID: 5105
Type Incorrect
93.5 ID: 7300
Type Correct
87.1
说明
对于100%的数据
1<=T<=1000
1<=n<=50
注意:
1.请在最后一个试卷处理完后也加上一个换行
2.由于win系统和linux系统换行的不同,建议不要使用scanf读入char
思路:模拟。
错误:宛如智障的错误。
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int T,n;
int sum,len;
double ans;
int cnt[];
char kind[],s[],sns[][];
void inread(){
scanf("%s",s);len=strlen(s);
for(int i=;i<len;i++) sum+=(s[i]-'')*pow(,len--i);
scanf("%s",kind);
for(int i=;i<=n;i++) scanf("%s",&sns[i]);
}
bool judge(){
if(sum<||sum>){ cout<<"Wrong ID"<<endl;return false;}
else{ cout<<"ID: "<<sum<<endl;}
if(s[len-]==''&&kind[]!=''||s[len-]==''&&kind[]==''||s[len-]==''&&kind[]==''||s[len-]==''&&kind[]=='') cout<<"Type Incorrect"<<endl;
else cout<<"Type Correct"<<endl;
return true;
}
bool judge1(int ques,int an){
for(int i=;i<;i++)
if(i!=an&&sns[ques][i]=='') return false;
return true;
}
int main(){
scanf("%d%d",&T,&n);
scanf("%s",s);
double pos=100.0/n*1.0;
int len=strlen(s);
for(int i=;i<len;i++) cnt[i+]=s[i]-'A';
while(T--){
sum=;ans=;
inread();
if(!judge()){ cout<<endl;continue; }
for(int i=;i<=n;i++){
if(sns[i][cnt[i]]==''&&judge1(i,cnt[i])) ans+=pos;
else continue;
}
printf("%.1lf",ans);
cout<<endl;
}
}
洛谷 P3692 [PUB1]夏幻的考试的更多相关文章
- 洛谷 P4964 绫小路的特别考试 解题报告
P4964 绫小路的特别考试 题目背景 这世界上「胜利」便是一切.无关乎过程. 要付出多少牺牲都无所谓.只要最后我「胜出」那就行了. 题目描述 一场新的特别考试来临了,这次的考试内容是(wan e d ...
- 洛谷模拟NOIP考试反思
洛谷模拟NOIP考试反思 想法 考了这么简单的试qwq然而依然emmmmmm成绩不好 虽然本次难度应该是大于正常PJ难度的但还是很不理想,离预估分数差很多qwq 于是就有了本反思嘤嘤嘤 比赛链接 原比 ...
- 洛谷P3434 [POI2006]KRA-The Disks(线段树)
洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...
- 洛谷P3957 跳房子(Noip2017普及组 T4)
今天我们的考试就考到了这道题,在考场上就压根没有思路,我知道它是一道dp的题,但因为太弱还是写不出来. 下来评讲的时候知道了一些思路,是dp加上二分查找的方式,还能够用单调队列优化. 但看了网上的许多 ...
- 洛谷 P1525 关押罪犯
题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...
- LCT总结——概念篇+洛谷P3690[模板]Link Cut Tree(动态树)(LCT,Splay)
为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换. LCT总结--应用篇戳这里 概念.性质简述 首先介绍一下链剖分的概念(感谢laofu的讲课) 链剖分,是指一类 ...
- 洛谷八连测R6
本次测试暴0!!!还有两周就要考试啦!!! 看题目时觉得难度不大,就直接写正解,没有参照数据,导致测出的结果和预想有较大差距. 不过得到经验,不管题目难易(除了D1T1)都要参照数据一部分一部分写,那 ...
- 洛谷P3459 [POI2007]MEG-Megalopolis [树链剖分]
题目传送门 MEG 题目描述 Byteotia has been eventually touched by globalisation, and so has Byteasar the Postma ...
- 洛谷P3434 [POI2006]KRA-The Disks [模拟]
题目传送门 KRA 题目描述 For his birthday present little Johnny has received from his parents a new plaything ...
随机推荐
- Linux之我最常用的20条命令
Linux之我最常用的20条命令 玩过 Linux的人都会知道, Linux中的命令的确是非常多,但是玩过 Linux的人也从来不会因为 Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的 ...
- 使用具体解释及源代码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
Adapter相当于一个数据源,能够给AdapterView提供数据.并依据数据创建相应的UI.能够通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作 ...
- 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)
[POJ 1845] Sumdiv 用的东西挺全 最主要通过这个题学了约数和公式跟二分求等比数列前n项和 另一种小优化的整数拆分 整数的唯一分解定理: 随意正整数都有且仅仅有一种方式写出其素因子的乘 ...
- _00020 妳那伊抹微笑_谁的异常最诡异第一期之 SqlServer RSA premaster secret error
博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 博文标题:_00020 妳那伊抹微笑_谁的异常最诡异第一期之 SqlServer RSA premas ...
- Swift学习笔记(1):基础部分
目录: 分号 常量和变量 数据类型 数值型类型转换 类型别名 元组 可选类型 API版本检查 分号 Swift并不强制要求你在每条语句的结尾处使用分号( ; ),你也可以按照自己的习惯添加分号.如果在 ...
- AngularJs轻松入门(六)表单校验
表单数据的校验对于提高WEB安全性意义不大,因为服务器接收到的请求不一定来自我们的前端页面,有可能来自别的站点,黑客可以自己做一个表单,把数据提交到我们的服务器(即跨站伪造请求),这样就绕过了前端页面 ...
- Svn中的tag标签的用法和意义
使用场景: 假如你的项目的某个版本已经完成测试开发.测试并已经上线,接下来街道新的需求,新项目开发需要修改多个文件的代码,当需求已经开发一段时间的时候,突然接到用户和测试人员的反馈,项目中某个重大的b ...
- codeforces 400 D Dima and Bacteria【并查集 Floyd】
题意:给出n个点,分别属于k个集合,判断每个集合里面的点的距离都为0,为0的话输出yes,并输出任意两个集合之间的最短路 这道题目有两个地方不会处理, 先是n个点,分别属于k个集合,该怎么记录下来这里 ...
- 函数式JS: 原来promise是这样的monad
转载请注明出处: http://hai.li/2017/03/27/prom... 背景 上篇文章 函数式JS: 一种continuation monad推导 得到了一个类似promise的链式调用, ...
- c#DataGridView复制粘贴删除功能
//可在dgv中复制.剪切.粘贴.删除数据 /// <summary> /// DataGridView复制 /// </summary> /// <param name ...