HDU1177做题笔记
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1177
【思路】
给所有人进行排名,然后最后输出某一个人获得的奖项(看了半天才知道第一行最后一个参数是什么意思,原来是指定了输出哪个人)。这是四种奖项金、银、铜、鼓励。(应该是这四个奖吧,没参加过)
Accepted today? I've got a golden medal :)
Accepted today? I've got a silver medal :)
Accepted today? I've got a copper medal :)
Accepted today? I've got an honor mentioned :)
主要用到的是结构体,来存储记录顺序、解决题数、用时以及奖项。同时还用到了sort,来对结构体进行一定规则的排序。
其次我在输入做了一点修改,自从上次看过别人输入时间的方式后,就采用了scanf("%d:%d:%d",hh,mm,ss)
进行时间的输入,这样可以直接获得三个整数,还是挺方便的嗷。
不过用cin
的话可以将时间作为一整个字符串存储,然后在cmp1函数
内比较时间的时候用字符串的比较方式也可以(strcmp
);也可以把字符串的数字位与’0’做减法,然后获得整型数字。(注意是有单引号的0)
【代码】
#include<bits/stdc++.h>
using namespace std;
struct programmar{int id;int p;int time; int ward;
}pg[150];
bool cmp1(programmar a,programmar b)
{if(a.p>b.p)return true;else if(a.p==b.p){if(a.time<b.time)return true;else return false;}return false;
}
bool cmp2(programmar a,programmar b)
{if(a.id<b.id)return true;return false;
}
int main()
{int n,g,s,c,m,hh,mm,ss;while(cin>>n>>g>>s>>c>>m&&n!=0){for(int i=0;i<n;i++){cin>>pg[i].p;pg[i].id=i;scanf("%d:%d:%d",&hh,&mm,&ss);//输入时间 pg[i].time=hh*3600+mm*60+ss; }sort(pg,pg+n,cmp1);for(int j=0;j<n;j++){if(g>0){pg[j].ward=1;g-=1;continue;}else if(s>0){pg[j].ward=2;s-=1;continue;}else if(c>0){pg[j].ward=3;c-=1;continue;}else {pg[j].ward=4;continue;}}sort(pg,pg+n,cmp2);//按id排序if(pg[m-1].ward==1)cout<<"Accepted today? I've got a golden medal :)"<<endl;if(pg[m-1].ward==2)cout<<"Accepted today? I've got a silver medal :)"<<endl;if(pg[m-1].ward==3)cout<<"Accepted today? I've got a copper medal :)"<<endl;if(pg[m-1].ward==4)cout<<"Accepted today? I've got an honor mentioned :)"<<endl;}}
【总结】挺水的一题,就是代码有点长,会使用结构体并且排序的话应该就挺方便的。
HDU1177做题笔记相关推荐
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- verilog练习:hdlbits网站上的做题笔记(6)
前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...
- verilog练习:hdlbits网站上的做题笔记(5)
前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...
- verilog练习:hdlbits网站上的做题笔记(7)!强烈推荐!
前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...
- verilog练习:hdlbits网站上的做题笔记(8)
前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...
- buuctf-MISC篇做题笔记(2)
buuctf-MISC篇做题笔记(2) 第七题:基础破解 先看题目提示,可能也要暴力破解 打开后是RAR文件,需要密码 我是用RARpassword暴力破解,且根据题意已知是四位纯数字密码,设置破解的 ...
- 关于数据库设计的做题笔记——选择题+填空题+大题
✅ 一点整理后的做题笔记- 文章目录 一.选择题和填空题 二.大题 三.写后感 ● 我们用的教材: 一.选择题和填空题 逻辑设计阶段的任务包括设计视图,形成数据库的外模式.( ) A. 对 B. 错 ...
- CS231n_1_assignment1_KNN做题笔记
笔记 KNN部分 1.python中一个向量,每个元素平方后求和: 方法1 sum = 0 for item in vector:sum += item*item 方法2 summ = numpy.s ...
- 攻防世界ctf题目easyupload做题笔记。
刚刷完upload-labs靶场,做做ctf题目,发现自己掌握的知识并不牢固.做了半天没有解出来,最后还是看别人的题解做出来的.写下做题过程,也就是wp吧.为了方便以后复习巩固. 本题的主要考点为利用 ...
最新文章
- 【若依(ruoyi)】table定制列宽
- Android之通过Binder机制实现IPC和linux的传统IPC的对比分析
- 我的 2018 年终总结
- win10让一个绿色软件开机启动
- git工作区和暂存区(4)
- mysql 基本命令整理(1)
- 深度学习与NLP简单应用
- 适应图像_目标检测的渐进域自适应,优于最新SOTA方法
- 回文数 LeetCode
- linux接口vlan tag,linux c vlan tag 技术详解
- URL中的#是什么意思
- 实习期间的一些思考整理(4)2018.4.14~4.16
- 玉米迷宫,Meteor Shower S,单词接龙
- 十二星座html网页设计作品,十二星座的专属设计风格
- ������ʾ����
- MES生产计划排程:提升工厂效益的有力工具
- 超小白用PANDA处理DTI数据的心酸历程笔记
- 速知!二级建造师你满足报考要求吗?
- 高德地图定位、添加定位图标、连线(二)
- 备赛电赛学习硬件篇(七):智能小车底板设计,暂时停更该系列
热门文章
- 「Premiere中文教程」照片定格效果
- linux 系统待机时间太短,与Windows相比,为什么我的电脑使用Ubuntu的电池续航时间更短?...
- DataGrip 导出数据 Groovy 脚本 MacOS
- 操作wordpress要掌握php吗,本地搭建好的Wordpress搬家到PHP空间运行需要注意的地方 | 无忧主机...
- echarts横坐标歪斜
- 照片怎么通过活体检测_照片活体检测,微信拍照活体检测,单张照片活体
- k8s-资源控制器RC、RS 、deployment
- “新经济 新境界 新发展”跨境电商高峰论坛在兰举行
- 对国内微型计算机硬件,第二章 经管计算机
- 技术团队现状及规划-写给18年的我