20140913 总结

今天做了一套坑爹的题....我的语文敢不敢再好一点 ==

第一题简直....我要调崩溃了,一直WA90,后来发现:原来我是在输出的时候才把名字改规范,所以在排序的时候wa掉了

改成读入的时候就变规范就好了

sheet

描述

八月是个悲惨的月份。先不谈炎热的天气,对于新生来说,八月意味着军训;而对于高一高二的同学来说,八月意味着入学考试。而考试就意味着改卷,改卷也就意味着答题卡。不幸的是,学校读答题卡的机器的评分软件坏了,HJA就被老师要求写一个评分的程序。

软件需要读入学生的姓名、试题答案以及学生的答题卡信息。

学生姓名

学校的信息管理系统中存储了所有学生的姓名,一共名学生。系统分别使用两个字符串来存储学生的姓氏和名字。字符串中只包含大写和小写的英文字母、连字符(-,ASCII码为45)以及撇号(’,ASCII码为39)。如果两个字符串只有大小写的区别,那么两个字符串视为相同的。比如,”Orz-Hja”和”oRZ-hJa”视为相同的字符串。保证信息管理系统中不存在姓氏和名字均相同的两个学生。姓氏的标准格式为字母全部大写,名字的标准格式为首字母大写,其余字母小写。

试题答案

入学考试一共道选择题,均为不定项选择题。选项共四个,A、B、C和D,标准答案选项的数量为个。不同题目的分值可能不同。每道题有两个分值,设为满分和部分分,保证部分分不超过满分。只有当学生的答案与标准答案完全一致时才能获得满分;当学生的答案不与标准答案完全一致,但是没有选择错误选项,且选择了至少一个选项时才能获得部分分;对于其他情况,不得分。比如:试题答案选项为ACD,只有当学生答案为ACD时才能获得满分,如果学生答案为A、C、D、AC、AD或CD则可以获得部分分,其他情况均不得分。

答题卡

一个学生的答题卡占四行,可以视为四个字符串。四个字符串从左往右数的第个空为第题A、B、C和D这四个选项的方框是否被填涂,X代表填涂,.代表未填涂。比如:

XX.

.X.

...

X..

则表示第一题选择AD,第二题选择AB,而第三题没有选择。

请你根据上述的信息,计算每位学生的得分,并将学生按照成绩排序输出。对于成绩相同的学生,按照姓氏串标准格式的字典序排序。对于姓氏相同的学生,按照名字串标准格式的字典序排序。

Input

输入数据第一行包含两个整数和,分别表示学生数和试题数。
接下来行,每行描述一位学生。第行有两个字符串,分别为第位学生的姓氏和名字。注意给定的姓氏和名字不一定符合标准格式,但是不含非法字符。
接下来行,每行描述一道试题。第行有两个非负整数和一个字符串,分别为第道试题的满分、部分分以及答案串。答案串仅含有”A”、”B”、”C”和”D”四种字符,且每个字符最多出现一次。答案串中含有的字符即为该题的答案选项。
接下来份答题卡,每份四行,按照读入顺序描述一位学生的答题卡。两份答题卡之间用一个空行隔开。

Output

输出一共行,按照问题描述中排序的顺序输出位学生的信息。每行首先输出该学生的分数,然后按标准格式输出该学生姓氏和名字串。三项信息之间用一个空格隔开。

Sample Input

3 4
He JiaAo
He JiaAo‘s-Xuedi
zhong hAOXI-sb
10 5 ABCD
10 10 C
5 0 CD
10 5 ABD

X..X
X..X
XXX.
X.XX

X..X
X...
.XX.
X..X

....
....
....
....

Sample Output

35 HE Jiaao
20 HE Jiaao‘s-xuedi
0 ZHONG Haoxi-sb
  1 #include <cstdio>
  2 #include <string>
  3 #include <cstring>
  4 #include <iostream>
  5 #include <algorithm>
  6 using namespace std;
  7
  8 const int MAXN = 100+10;
  9
 10 int n, m, t_len;
 11 char ch[4][MAXN], t_trash[MAXN], t_str[4];
 12
 13 inline bool isCap(char c){
 14     return ‘A‘ <= c && c <= ‘Z‘;
 15 }
 16
 17 inline bool isIni(char c){
 18     return ‘a‘ <= c && c <= ‘z‘;
 19 }
 20
 21 struct Test{
 22     bool isAns[4];
 23     int ak, hk, ansNum;//all kill & half kill
 24
 25     Test(){
 26         memset(isAns, false, sizeof(isAns));
 27         ansNum = 0;
 28     }
 29 }t[MAXN];
 30
 31 struct Student{
 32     int score;
 33     string first, second;
 34
 35     friend bool operator < (const Student& A, const Student& B){
 36         if (A.score != B.score) return A.score > B.score;
 37         if (A.first != B.first) return A.first < B.first;
 38         return A.second < B.second;
 39     }
 40
 41     void update(){
 42         for (int tId=0; tId<m; tId++){
 43             int t_num = 0;
 44
 45             for (int aId=0; aId<4; aId++){
 46                 if (not t[tId].isAns[aId] && ch[aId][tId]==‘X‘){
 47                     t_num = 0;
 48                     break;
 49                 }
 50                 if (t[tId].isAns[aId] && ch[aId][tId]==‘X‘)
 51                     t_num ++;
 52             }
 53
 54             if (t_num == t[tId].ansNum) score += t[tId].ak;
 55             else score += t_num ? t[tId].hk : 0;
 56         }
 57     }
 58 }s[MAXN];
 59
 60 int main(){
 61     freopen("sheet.in", "r", stdin);
 62     freopen("sheet.out", "w", stdout);
 63
 64     scanf("%d %d\n", &n, &m);
 65     for (int i=0; i<n; i++){
 66         cin >> s[i].first >> s[i].second;
 67         t_len = s[i].first.length();
 68
 69         for (int j=0; j<t_len; j++)
 70             if (isIni(s[i].first[j])) s[i].first[j] -= 32;
 71
 72         t_len = s[i].second.length();
 73         for (int j=0; j<t_len; j++)
 74             if (isIni(s[i].second[j]) || isCap(s[i].second[j])){
 75                 if (isIni(s[i].second[j])) s[i].second[j] -= 32;
 76                 for (int k=j+1; k<t_len; k++)
 77                     if (isCap(s[i].second[k]))
 78                         s[i].second[k] += 32;
 79                 break;
 80             }
 81     }
 82
 83     for (int i=0; i<m; i++){
 84         scanf("%d %d %s\n", &t[i].ak, &t[i].hk, t_str);
 85         t_len = strlen(t_str);
 86         for (int j=0; j<t_len; j++)
 87             t[i].isAns[t_str[j]-‘A‘] = true, t[i].ansNum ++;
 88     }
 89
 90     for (int i=0; i<n; i++){
 91         for (int j=0; j<4; j++)
 92             fgets(ch[j], sizeof(ch[j]), stdin);
 93         if (i != n-1) fgets(t_trash, sizeof(t_trash), stdin);
 94         s[i].update();
 95     }
 96
 97     sort(s, s+n);
 98     for (int i=0; i<n; i++)
 99         cout<< s[i].score << " " << s[i].first << " " << s[i].second << endl;
100 }
时间: 2025-01-12 05:46:50

20140913 总结的相关文章

20140913

老婆(终于能叫你老婆了~~)我爱你,我会给你幸福的,--20140913 我要把今天钉起来,这一天,我叫你了第一声老婆, 我说了第一声我爱你 以前的自己都是说着喜欢你不知道有没有发现? 我觉得喜欢跟爱,爱会包含更多的责任 我说爱你 就决定了爱着你的一切 就决定了这一辈子绝对绝对不会轻言的放弃爱你 不管以后的风雨, 不管以后怎样的生活, 我们一起去面对 这一片天空,以前貌似只是我在写着自己的幻想 从这一刻开始,我会写我们一起经历的一切 一切的风雨,一起的欢笑甚至悲伤 这片天空是我心灵最纯净的地方

数据库备份及网页 20140913

一.数据库备份 1.停止引擎运行,复制粘贴 2.分离 3.备份 4.导入导出 二.网页 1.HTML -- Hyper Text Markup Language 超文本标记语言,源代码,用于表现网页内容. 2.CSS  -- Cascading Style Sheets  标准通用标记语言,用于美化网页. 3.JavaScript -- 脚本语言,用于做动画交互.

缠中说禅:教你炒股票108课(转载)

股市闲谈:G股是G点,大牛不用套!(2006-05-12 19:02:25) 能和本ID聊股市的,如果有,最多就处在精子或卵子状态,连受精卵都算不上.而且股市游戏是靠干出来而不是说出来的,因此一般都不说.但看到有些人被这股市折腾得厉害,出于同情,又周末了,也就说两句.  一年前股市跌到1000点最腥风血雨时,当时看到很多人在网上很可怜,就用老ID给了一个明确的说法,叫"G股是G点",越腥风血雨就机会越大了.现在这个G点已经弄得让很多人受不了,绝大多数在市场中的人都是很犯贱的,跌也怕,涨

GitHub 上的十一款热门开源安全工具

作为开源开发领域的基石,"所有漏洞皆属浅表"已经成为一条著名的原则甚至是信条.作为广为人知的Linus定律,当讨论开源模式在安全方面的优势时,开放代码能够提高项目漏洞检测效率的理论也被IT专业人士们所普遍接受. 恶意软件分析.渗透测试.计算机取证--GitHub托管着一系列引人注目的安全工具.足以应对各类规模下计算环境的实际需求. GitHub上的十一款热门开源安全工具 作为开源开发领域的基石,"所有漏洞皆属浅表"已经成为一条著名的原则甚至是信条.作为广为人知的Li

一个用于批量下载网络图片的Shell脚本

By Long Luo 最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张.图标是存储在Yahoo Image网站上的. 迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片资源的Shell脚本,完美的解决了这个问题. Yahoo天气图标的地址规则如下:`https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/` + 图标名称 比如: 我使用了2种方法,解决了下载

MQTT学习笔记——树莓派MQTT客户端 使用Mosquitto和paho-python

0 前言 本文说明如何在树莓派上安装Mosquitto.本文通过两个简单的例子说明树莓派中如何使用MQTT协议实现消息订阅,这些例子包括Mosquitto_sub指令实现消息订阅和paho-python扩展库实现GPIO端口的远程控制.本文中使用了两个工具--Mosquitto paho-python,其中Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的消息通信简单易用:另外,paho-python是一个

DICOM医学图形处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求(续)

背景: 上一篇博文中,在对storescp工具源文件storescp.cc和DcmSCP类的源文件scp.cc进行剖析后,得出了两者都可以实现响应C-ECHO和C-STORE(需要对DcmSCP类进行扩展)请求的功能.但是在对DcmSCP类进行扩展,期望模拟实现自己的storescp.exe工具时遇到了问题,客户端提示服务中断链接,而服务端显示保存失败,如下图所示.此次博文通过排除该问题再一次对storescp.cc和scp.cc进行对比,主要从Presentation Context.Abst

Objective-c CoreData

#import "AppDelegate.h" #import "Person.h" @implementation AppDelegate @synthesize managedObjectContext = _managedObjectContext; @synthesize managedObjectModel = _managedObjectModel; @synthesize persistentStoreCoordinator = _persistent

JS 日期格式化和解析工具

本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, fmt),其中fmt支持的格式有: y(年) M(月) d(日) q(季度) w(星期) H(24小时制的小时) h(12小时制的小时) m(分钟) s(秒) S(毫秒) 另外,字符的个数决定输出字符的长度,如,yy输出16,yyyy输出2016,ww输出周五,www输出星期五,等等. 代码 完整代码一共