PAT (Basic Level) 1058 选择题(模拟)
题目链接:点击查看
题目大意:给出规则,模拟批改多选题的过程,期间记录一下每道题有多少个人错,注意,在这个题目中的多选题,只有全部答案完全正确才能得到分数,其他情况分数均为0分计算
题目分析:又是一道比较好玩的模拟题,难度为简单偏上吧,最近本来是在刷pat乙级题目的,结果发现迷上这种简单模拟了,感觉做着真的挺好玩的,这个题目我感觉主要是输入输出不太好处理吧,我是首先用一个map记录一下每个题目的正确答案,再就是用stringstream配合string类很方便的解决下面学生答案的输入以及处理,总的来说感觉代码写的还是蛮不错的,挂上来看一下吧:
对了,本来是想将每个题的答案整合成一个string类然后直接扔进map里的,后来怕题目的答案会乱序给出,就排了一下序,事后发现其实并不需要排序,说明这个题目还是听良心的,没出那种乱七八糟的数据故意坑人
代码:
#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
#include<unordered_map>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=110;unordered_map<string,int>mp[N];//正确答案 格式:mp[题号][答案]=分数int cnt[N]={0};//错题 格式:cnt[题号]=个数int ans[N*10]={0};//分数 格式:ans[学生序号]=分数int main()
{
// freopen("input.txt","r",stdin);int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int score;int num;scanf("%d%*d%d",&score,&num);char ch[5];string s;for(int j=0;j<num;j++){scanf("%s",ch);s+=ch[0];}mp[i][s]=score;}getchar();//注意!!!在cin或scanf与getline或gets连用时,已经记住要用getchar吃掉回车for(int i=1;i<=n;i++){string s;getline(cin,s);//直接读一行,即当前学生的所有答案for(int i=0;i<s.size();i++)//去掉所有的括号if(s[i]=='('||s[i]==')')s.erase(s.begin()+i);stringstream ss(s);int num;char ch[5];int pos=1;//题号 while(ss>>num){string res;while(num--){ss>>ch;res+=ch[0];}if(mp[pos][res])ans[i]+=mp[pos][res];elsecnt[pos]++;pos++;}}for(int i=1;i<=n;i++)printf("%d\n",ans[i]);int mmax=0;for(int i=1;i<=m;i++)mmax=max(mmax,cnt[i]);if(mmax==0)cout<<"Too simple"<<endl;else{vector<int>ans;for(int i=1;i<=m;i++)if(mmax==cnt[i])ans.push_back(i);printf("%d",mmax);for(int i=0;i<ans.size();i++)printf(" %d",ans[i]);printf("\n");}return 0;
}
PAT (Basic Level) 1058 选择题(模拟)相关推荐
- PAT (Basic Level) 1055 集体照(模拟,好题)
题目链接:点击查看 题目大意:给出N个人的姓名和身高,再给出一共需要站K排,现在需要按照规则站队,求最后的队列分布: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不 ...
- PAT (Basic Level) Practice (中文)1058 选择题 (20 分)
PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20) http://www.patest.cn/contests/pat-b-practise/1034 ...
- 【题解】PAT (Basic Level) Practice (中文)
互联网行业的小白,写博客的目的是为了记录自己的学习过程.对自己学习中所犯的错误做一个总结.由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level P ...
- PAT basic level 答案+解题思路+难点 (个人刷题记录)
PAT basic level 使用语言:C++ 仅记录一下自己刷题过程的心得体会 永远保持更新(期待更好的解法) 可能有些题没有(那就是我还没做出来,以后会更的!) 欢迎大家与我讨论交流√ 题目序列 ...
- 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)
可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决) c1, c2 = map(int,input().split( ...
- 1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版
PAT (Basic Level) Practice (中文) 1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一 ...
- 卡拉兹(Callatz)猜想,PAT(Basic Level) Practise NO.1001
PAT(Basic Level) Practise NO.1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半. 这样 ...
最新文章
- ASP.NET中Web DataGrid的使用指南-转
- vue-cli脚手架项目构成
- TCP/IP协议(三次握手)
- java自定义jsp标签_Javaweb自定义jsp标签
- 海思108M 4D1模式含义
- 大一计算机论文_大一计算机论文发表.doc
- @Transactional注解导致 多数据源@DS无效 的解决方案
- SO_LINGER和优雅关闭连接
- 动网论坛“数据库连接出错”处理记-间歇博客
- ipc$与默认共享及ipc$连接失败的原因
- git stash '储藏'当前工作状态
- VMware中共享文件夹功能的使用(ubuntu)
- 阿里云国际站实名认证上传材料填写样例(域名持有者为组织)
- sudoku me_Sudoku,一个完整的MFC应用程序。 第7部分
- js、css 实现table表头固定
- python3 enumerate函数_python3 内置函数enumerate
- UOJ 265 NOIP 2016 DAY2 T3 浅谈预处理状态压缩动态规划
- “21天好习惯“ 第十七期 — 17之黑马面面移动端布局(三)
- 18软工实践 - 第七次作业 - 需求分析报告
- python 解析jsp_JSP语法详解二 - 博学之,审问之,慎思之,明辨之,笃行之 - ITeye博客...
热门文章
- RabbitMQ Topic交换机(生产者)
- leader选举的源码分析-QuorumPeer.start
- FactroyBean方式配置bean
- 实现根据id查询房源数据的GraphQL服务
- SpringMVC拦截器之拦截器接口方法演示
- 初始化方法-创建对象时自动调用初始化方法
- Oracle数据库的安装和配置
- c语言前后指针怎么用,详解一下——C语言指针该怎么用
- 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller
- 关于myeclipse buildpath的jar包不能复制到tomcat lib下的问题