【PAT】B1073 多选题常见计分法(20 分)
此处为我的存储结构,只提供一种思路,二维数组存储所有数据

#include<stdio.h>
#include<string.h>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
int ti[200][20]={0};
bool ffind(char *p,char c){
int len = strlen(p);
for(int i=0;i<len;i++){
if(p[i]==c) return true;
}
return false;
}
int main(){
int flag=0;//储存错的最多次数
int N,M;scanf("%d %d",&N,&M);
for(int i=1;i<=M;i++){
scanf("%d %d %d",&ti[i][0],&ti[i][1],&ti[i][2]);
for(int j=0;j<ti[i][2];j++){
char temp;scanf(" %c",&temp);
ti[i][temp-'a'+3]=1;
}
}
getchar();//接收换行
for(int i=0;i<N;i++){//N个学生,N次循环
double score=0;//当前学生成绩
for(int j=1;j<=M;j++){
int Tnum=0,ff=0;
char str[10];
scanf(" (%[^)]",str);
for(int k=3;k<=7;k++){
char temp=k-3+'a';
if(ffind(str,temp)==true){//选了
if(ti[j][k]==0){//错
ti[j][k+5]++;ff=1;
if(ti[j][k+5]>flag) flag=ti[j][k+5];
}else Tnum++;
}else{//没选
if(ti[j][k]==1){
ti[j][k+5]++;
if(ti[j][k+5]>flag) flag=ti[j][k+5];
}
}
}
if(ff==0){
if(Tnum==ti[j][2]) score+=ti[j][0];
if(Tnum<ti[j][2]){
score+=ti[j][0]/2.0;
}
}
getchar();//右括号
}
printf("%.1lf\n",score);
}
if(flag==0){
printf("Too simple");
return 0;
}
for(int i=1;i<=M;i++){
for(int j=8;j<=12;j++){
if(ti[i][j]==flag) printf("%d %d-%c\n",flag,i,j-8+'a');
}
}
return 0;
}
【PAT】B1073 多选题常见计分法(20 分)的更多相关文章
- PAT——1073. 多选题常见计分法(20)
批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数:如果考生选择了任何一个错误的选项,则不能得分.本题就 ...
- 1073 多选题常见计分法 (20分)C语言
批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生选择了任何一个错误的选项,则不能得分.本 ...
- PAT 1073. 多选题常见计分法
PAT 1073. 多选题常见计分法 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数:如果考生选择了 ...
- PAT 1073 多选题常见计分法(20)(代码+思路)
1073 多选题常见计分法(20 分) 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生 ...
- PAT 1073 多选题常见计分法 (20 分)
批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生选择了任何一个错误的选项,则不能得分.本 ...
- P1073 多选题常见计分法
P1073 多选题常见计分法 转跳点:
- PAT Basic 1073. 多选题常见计分法
题目内容 多选题常见计分法(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 批改多选题是比较麻烦的事情,有 ...
- PAT (Advanced Level) Practice 1015 Reversible Primes (20 分) 凌宸1642
PAT (Advanced Level) Practice 1015 Reversible Primes (20 分) 凌宸1642 题目描述: A reversible prime in any n ...
- PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642 题目描述: The task is really simple: ...
随机推荐
- Docker总结(脑图图片)
- Turbine——Hystrix集群监控
上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command.当我们有很多个服务的时候,这就需要聚合所有服务的Hystrix Dashboard的数据了.这就 ...
- MVCC浅析
在并发读写数据库时,读操作可能会不一致的数据(脏读).为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问.由于,加锁会将读写操作串行化,所以不会出现不一致的状态.但是,读操作会被 ...
- leetcode — longest-common-prefix
/** * Source : https://oj.leetcode.com/problems/longest-common-prefix/ * * Created by lverpeng on 20 ...
- kafka集群partition分布原理分析
1. Kafka集群partition replication默认自动分配分析 下面以一个Kafka集群中4个Broker举例,创建1个topic包含4个Partition,2 Replication ...
- Asp.Net MVC +EntityFramework主从表新增编辑操作的实现(删除操作怎么实现?)
Asp.Net MVC +EntityFramework主从表新增编辑操作的实现 对于MVC中同时对主从表的表单操作在网上现有的解决很少,而这样的操作在做业务系统中是经常为遇到的.我在网上搜索了很久都 ...
- NAT与网桥
CentOS设置虚拟网卡做NAT方式和Bridge方式桥接 时间:2015-02-25 23:30来源:blog.51cto.com 作者:samlei 摘要:KVM虚拟机网络配置的两种方式:N ...
- IOS 获取的时间显示为NAN 解决方法
var regTime= item.BeginDate.replace(/\-/g, "/"); ------ item.BeginDate 我的日期年月日的 (/\-/g, ...
- 同源策略与CORS
同源策略 同源策略是浏览器保护用户安全上网的重要措施,协议.域名.端口号三者相同即为同源. 不同源下,浏览器不允许js操作Cookie.LocalStorage.DOM等数据或页面元素,也不允许发送a ...
- 两个有序数组长度分别为m,n,最多m+n次查找找出相同的数
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...