题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int n,m;
struct node//题
{int score; //发数 int sum;//总选项个数 string ans;//答案
}Node[10005];
struct student//保存每一道题的正确性
{int sum;//总的错误数 int s[7];//每道题的选项选错数
}Student[1005];
double score[10005];
int main(void)
{cin>>n>>m;for(int i=0;i<m;i++){cin>>Node[i].score>>Node[i].sum;int t; cin>>t;Node[i].ans="";for(int j=0;j<t;j++) {string s; cin>>s;Node[i].ans+=s;}}string s; getline(cin,s);for(int i=0;i<n;i++)//读入人数 {getline(cin,s);int index=0;for(int k=0;k<m;k++)//读入选项 {string temp;while(s[index++]!=')'){if(s[index]>='a'&&s[index]<='z') temp+=s[index];}bool flag=false;int cnt=0;for(int j=0;j<6;j++){if(temp.find('a'+j)==-1&&Node[k].ans.find('a'+j)==-1) continue;//都没有 if(temp.find('a'+j)!=-1&&Node[k].ans.find('a'+j)!=-1) cnt++;//都有 if(temp.find('a'+j)==-1&&Node[k].ans.find('a'+j)!=-1) Student[k].s[j]++;//漏选if(temp.find('a'+j)!=-1&&Node[k].ans.find('a'+j)==-1) Student[k].s[j]++,flag=true;//选错}if(!flag&&cnt==Node[k].ans.size()) score[i]+=Node[k].score;if(!flag&&cnt!=Node[k].ans.size()) score[i]+=Node[k].score/2.0;}}for(int i=0;i<n;i++)  printf("%.1lf\n",score[i]);int index=0;for(int i=0;i<m;i++){for(int j=0;j<6;j++) index=max(index,Student[i].s[j]);}if(index==0) cout<<"Too simple"<<endl;else{for(int i=0;i<m;i++){for(int j=0;j<6;j++) if(Student[i].s[j]==index){printf("%d %d-%c\n",index,i+1,'a'+j);}}}return 0;
}
#include<cstdio>
#include<iostream>
#include<map>
#include<string>
using namespace std;
string s[105];
int score[105];
double sum[1005];
int cnt[105][8];
int n,m;
int main(void)
{cin>>n>>m;for(int i=0;i<m;i++){cin>>score[i];int t; cin>>t>>t;for(int j=0;j<t;j++){string x; cin>>x;s[i]+=x;}} string temp; getline(cin,temp);for(int i=0;i<n;i++){getline(cin,temp);int index=0;string a;for(int j=0;j<temp.size();j++){if(temp[j]>='a'&&temp[j]<='z') a+=temp[j];if(temp[j]==')'){int flag=0;for(int z=0;z<5;z++){if(s[index].find('a'+z)==-1&&a.find('a'+z)==-1) continue;if(s[index].find('a'+z)!=-1&&a.find('a'+z)==-1) cnt[index][z]++;if(s[index].find('a'+z)!=-1&&a.find('a'+z)!=-1) flag++;if(s[index].find('a'+z)==-1&&a.find('a'+z)!=-1) cnt[index][z]++,flag=-99;}   if(flag>0&&flag<s[index].size()) sum[i]+=score[index]/2.0;if(flag==s[index].size()) sum[i]+=score[index];index++;a.clear();}}}for(int i=0;i<n;i++) printf("%.1lf\n",sum[i]);int ans=0;for(int i=0;i<m;i++)for(int j=0;j<5;j++) if(cnt[i][j]>ans) ans=cnt[i][j];if(!ans) cout<<"Too simple"<<endl;else {for(int i=0;i<m;i++)for(int j=0;j<5;j++) if(cnt[i][j]==ans) printf("%d %d-%c\n",ans,i+1,'a'+j);}return 0;
}

【PAT乙级】1073 多选题常见计分法 (20 分)相关推荐

  1. C++学习之路 | PTA乙级—— 1073 多选题常见计分法 (20 分)(精简)

    1073 多选题常见计分法 (20 分) 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考 ...

  2. 1073 多选题常见计分法 (20 分)_66行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项, ...

  3. 1073 多选题常见计分法 (20 分)(注意测试点4)

    批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生选择了任何一个错误的选项,则不能得分.本 ...

  4. PAT 1073 多选题常见计分法(20)(代码+思路)

    1073 多选题常见计分法(20 分) 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生 ...

  5. 1073 多选题常见计分法

    1073 多选题常见计分法(20 分) 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生 ...

  6. PAT (Basic Level) 1073 多选题常见计分法(恶心模拟)

    题目链接:点击查看 题目大意:1058的升级版,批改多选题,全对得满分,半对的半分,有错误选项不得分,最后统计出每个学生的成绩,以及哪个题目的哪个选项错误的次数最多,若有并列,依次输出 题目分析:目前 ...

  7. 1073 多选题常见计分法 (20 分)

    批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生选择了任何一个错误的选项,则不能得分.本 ...

  8. 【PAT (Basic Level) 】1024 科学计数法 (20 分)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部 ...

  9. PAT乙级|C语言|1032 挖掘机技术哪家强 (20分)

    题目 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过10510^5105的正整数 N,即参赛 ...

最新文章

  1. 在ChemDraw中输入千分号的方法
  2. 正则表达式三 :编译
  3. STUN响应消息中添加MAPPED_ADDRESS
  4. Windows RDP协议 Fuzzing 漏洞挖掘研究
  5. 遨游金山网盾?蹦出来有啥用?
  6. ajax传递json数组php,怎么通过ajax传送json数组到php,并通过php将数据插入数据库
  7. asu计算机工程师,优达udacity无人驾驶工程师第一二三期(全)
  8. Statement violates GTID consistency: CREATE TABLE ... SELECT.
  9. 均值聚类散点图怎么画_用Excel制作一个漂亮的分类散点图
  10. Open Inventor与Coin3D开发环境配置/Vs2017+Qt+coin3D配置方法,实测可用
  11. 断层约束的等值线追踪
  12. iOS 加载本地gif缓慢
  13. 解决IIS 6.0的200KB与下载4MB的限制
  14. 【学习笔记】带你从0开始学习 01Trie
  15. 解忧杂货店—你的问题,我来解答
  16. 大鱼号自媒体原创视频好过吗,大鱼号自媒体原创视频收益怎么样
  17. 在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性
  18. 南信大iNUIST校园网自动登录代码
  19. WordPress文章内容编辑,wp文章在线批量编辑,wp文章内容可视化编辑器
  20. 搞微信红包营销推广的时候,如何防止被刷红包?

热门文章

  1. 封装汉语自然语言处理中的常用方法(附代码:生成中文词云)
  2. 剑指Offer——斐波那契数列
  3. eclipse创建spring boot项目加载不到application.properties配置文件
  4. MySQL慢查询日志ES索引模板
  5. 2017广东工业大学程序设计竞赛决赛 题解源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)...
  6. 201521123113 《Java程序设计》第5周学习总结
  7. Angular2 - Starter - Routes, Route Resolver
  8. 拦截导弹 (加了神奇的位运算)
  9. OpenCV基本步骤(初步学习)
  10. 不可能解开的谜题 (程序员修炼之道,评注者序)