题目链接: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做题笔记相关推荐

  1. C语言程序设计做题笔记之C语言基础知识(下)

    C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...

  2. verilog练习:hdlbits网站上的做题笔记(6)

    前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...

  3. verilog练习:hdlbits网站上的做题笔记(5)

    前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...

  4. verilog练习:hdlbits网站上的做题笔记(7)!强烈推荐!

    前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...

  5. verilog练习:hdlbits网站上的做题笔记(8)

    前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...

  6. buuctf-MISC篇做题笔记(2)

    buuctf-MISC篇做题笔记(2) 第七题:基础破解 先看题目提示,可能也要暴力破解 打开后是RAR文件,需要密码 我是用RARpassword暴力破解,且根据题意已知是四位纯数字密码,设置破解的 ...

  7. 关于数据库设计的做题笔记——选择题+填空题+大题

    ✅ 一点整理后的做题笔记- 文章目录 一.选择题和填空题 二.大题 三.写后感 ● 我们用的教材: 一.选择题和填空题 逻辑设计阶段的任务包括设计视图,形成数据库的外模式.( ) A. 对 B. 错 ...

  8. CS231n_1_assignment1_KNN做题笔记

    笔记 KNN部分 1.python中一个向量,每个元素平方后求和: 方法1 sum = 0 for item in vector:sum += item*item 方法2 summ = numpy.s ...

  9. 攻防世界ctf题目easyupload做题笔记。

    刚刷完upload-labs靶场,做做ctf题目,发现自己掌握的知识并不牢固.做了半天没有解出来,最后还是看别人的题解做出来的.写下做题过程,也就是wp吧.为了方便以后复习巩固. 本题的主要考点为利用 ...

最新文章

  1. 【若依(ruoyi)】table定制列宽
  2. Android之通过Binder机制实现IPC和linux的传统IPC的对比分析
  3. 我的 2018 年终总结
  4. win10让一个绿色软件开机启动
  5. git工作区和暂存区(4)
  6. mysql 基本命令整理(1)
  7. 深度学习与NLP简单应用
  8. 适应图像_目标检测的渐进域自适应,优于最新SOTA方法
  9. 回文数 LeetCode
  10. linux接口vlan tag,linux c vlan tag 技术详解
  11. URL中的#是什么意思
  12. 实习期间的一些思考整理(4)2018.4.14~4.16
  13. 玉米迷宫,Meteor Shower S,单词接龙
  14. 十二星座html网页设计作品,十二星座的专属设计风格
  15. ������ʾ����
  16. MES生产计划排程:提升工厂效益的有力工具
  17. 超小白用PANDA处理DTI数据的心酸历程笔记
  18. 速知!二级建造师你满足报考要求吗?
  19. 高德地图定位、添加定位图标、连线(二)
  20. 备赛电赛学习硬件篇(七):智能小车底板设计,暂时停更该系列

热门文章

  1. 「Premiere中文教程」照片定格效果
  2. linux 系统待机时间太短,与Windows相比,为什么我的电脑使用Ubuntu的电池续航时间更短?...
  3. DataGrip 导出数据 Groovy 脚本 MacOS
  4. 操作wordpress要掌握php吗,本地搭建好的Wordpress搬家到PHP空间运行需要注意的地方 | 无忧主机...
  5. echarts横坐标歪斜
  6. 照片怎么通过活体检测_照片活体检测,微信拍照活体检测,单张照片活体
  7. k8s-资源控制器RC、RS 、deployment
  8. “新经济 新境界 新发展”跨境电商高峰论坛在兰举行
  9. 对国内微型计算机硬件,第二章 经管计算机
  10. 技术团队现状及规划-写给18年的我