【PAT】B1058 选择题(20 分)
这道题的逻辑怪复杂的,写起来蛮费时间的
结构体中要储存的信息多,整体不难,信息量大,容易把人搞蒙
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct ti{
int tihao;
int fen;
int xuan;
int Tnum;
bool zhengquedaan[127]={0};
int cuo=0;
}Data[101];
bool cmp(ti A,ti B){
if(A.cuo!=B.cuo) return A.cuo>B.cuo;
else return A.tihao<B.tihao;
}
int main(){
int N,M;//学生,题
scanf("%d %d",&N,&M);
for(int i=0;i<M;i++){//题数
scanf("%d",&Data[i].fen);
scanf("%d",&Data[i].xuan);
scanf("%d",&Data[i].Tnum);
for(int j=0;j<Data[i].Tnum;j++){
char c;
scanf(" %c",&c);
int a=c;
Data[i].zhengquedaan[a]=true;
}
Data[i].tihao=i+1;
}
for(int i=0;i<N;i++){ //人
int fenshu=0;
for(int k=0;k<M;k++){ //题
int num;char c;
int zhengnum=0;
int flag=true;
scanf(" (%d",&num);
for(int j=0;j<num;j++){ //验证答案
scanf(" %c",&c);
if(Data[k].zhengquedaan[c]) zhengnum++;
else flag=false;
}
getchar(); //吸收括号
if(zhengnum==Data[k].Tnum&&flag) fenshu+=Data[k].fen;
else Data[k].cuo++;
}
printf("%d\n",fenshu);
}
sort(Data,Data+M,cmp);
if(Data[0].cuo==0){
printf("Too simple");
return 0;
}
printf("%d",Data[0].cuo);
for(int i=0;i<M;i++){
if(Data[i].cuo!=Data[0].cuo) break;
printf(" %d",Data[i].tihao);
}
return 0;
}
【PAT】B1058 选择题(20 分)的更多相关文章
- PAT 1058. 选择题(20)
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多 ...
- 1058 选择题 (20 分)C语言
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个 ...
- PAT 乙级 1074 宇宙无敌加法器 (20 分)
1074 宇宙无敌加法器 (20 分) 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的.而在 PAT 星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”.每 ...
- PAT 甲级 1035 Password (20 分)
1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...
- PAT 1058 选择题(20)(代码+思路)
1058 选择题(20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100 ...
- pat 1035 Password(20 分)
1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ...
- pat 1124 Raffle for Weibo Followers(20 分)
1124 Raffle for Weibo Followers(20 分) John got a full mark on PAT. He was so happy that he decided t ...
- PAT 甲级 1035 Password (20 分)(简单题)
1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for ...
- PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)
题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序.题目原文:如果解不唯一,则 ...
- PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642 题目描述: The task is really simple: ...
随机推荐
- Hadoop服务库与事件库的使用及其工作流程
Hadoop服务库与事件库的使用及其工作流程 Hadoop服务库: YARN采用了基于服务的对象管理模型,主要特点有: 被服务化的对象分4个状态:NOTINITED,INITED,STARTED, ...
- 全网最详细的实用的搜索工具Listary和Everything对比的区别【堪称比Everything要好】(图文详解)
不多说,直接上干货! 引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出 ...
- SSE图像算法优化系列五:超高速指数模糊算法的实现和优化(10000*10000在100ms左右实现)。
今天我们来花点时间再次谈谈一个模糊算法,一个超级简单但是又超级牛逼的算法,无论在效果上还是速度上都可以和Boxblur, stackblur或者是Gaussblur想媲美,效果上,比Boxblur来的 ...
- leetcode — 4sum
import java.util.Arrays; import java.util.HashSet; import java.util.Set; /** * Source : https://oj.l ...
- 关于EF实体类的一点思考
在EF中修改一条记录时,一般是先查出该条记录,然后再通过TryUpdateModel或其他方式更新对应的属性.但我很讨厌这种要更新一条记录时,还要先去把记录查询出来的做法.我喜欢像sql语句那样的直接 ...
- override与new的区别
using System; namespace ConsoleAppDemo { class BaseClass { public void Fun() { Console.WriteLine(&qu ...
- Centos7重置Mysql 8.0.1 root 密码
问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码:找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc ...
- T-SQL:谓词和运算符(六)
谓词一般有 where和having,check 谓词只计算 TRUE ,FALSE或者UNKNOWN 逻辑表达式 如 AND 和OR 1.IN 谓词的用法 SELECT orderid, em ...
- Kubernetes 的几个重要概念
Cluster Cluster 是计算.存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用. Master Master 是 Cluster 的大脑,它的主要职责是调度,即 ...
- CSS 3D transforms
https://www.creativebloq.com/css3/20-stunning-examples-css-3d-transforms-11112759 https://github.com ...