题目链接:广大OJ1373
本题亦为广大15级第一次周赛的C题。

题目内容

Problem Description
悠木碧(以下通称凹酱,昵称来源请百度)是一位活跃在声优界的女性声优,同时也作为偶像活跃着。

由于凹酱的人气不断上升,她的日程安排也越来越满。

凹酱每天都会接到不同的任务(就是配音啊演唱会啊之类的,以下统称为LIVE),以及不固定时间的训练(以下统称为Practice),再加上她每天都有想玩的游戏(这也是日程的一部分哦)(凹酱玩游戏很厉害的=w=)(以下统称为Game),她的日程表堆得非常乱,甚至搞不清楚哪一天要做什么事。

现在,你需要做出一个程序,帮助凹酱来让她的日程表有序一些。

按照她的期望,日程表应该是这样排的:

1.按日期排

2.按活动内容排序,LIVE要优先于Practice,而Practice要优先于Game

例如说,有如下日程表:

3月22日 LIVE

2月1日 Game

3月22日 Practice

4月7日 Game

那么整理有序之后就应该是这样的:

2月1日 Game

3月22日 LIVE

3月22日 Practice

4月7日 Game

Input
多组输入数据

每组数据的第一行为n(1<=n<=1000),表示凹酱的日程表里有几个日程。

接下来有n行,每一行包括两个数字m(表示月份),d(表示日数)和一个字符串(这个字符串只有“LIVE”,“Game”,“Practice”三种可能),分别用空格隔开。

Output
对于每组输入数据,输出整理好的日程表,具体格式参照样例。

每输出一组输出数据就要打一个空行。

Sample Input
3
1 1 LIVE
8 7 LIVE
9 10 Game
4
3 22 LIVE
6 7 LIVE
2 22 Practice
3 22 Game
2
6 6 Game
6 6 Practice
Sample Output
1 1 LIVE
8 7 LIVE
9 10 Game

2 22 Practice
3 22 LIVE
3 22 Game
6 7 LIVE

6 6 Practice
6 6 Game
Hint
接到整理好的日程表之后的凹酱选择了取消所有日程(喂!)

解题思路

请无视Hint我家凹酱才不会那么不认真!
咳,跑题了。
这道题就是简单的结构体的应用和STL排序函数的重载比较函数的简单应用。
结构体的话参照c++的第五章,这里主要说说STL自带的排序函数。
C++的标准模板库(STL)里有一个现成的排序函数sort可以进行排序。
通俗的使用格式如下所示:
sort(头指针,尾指针,可缺省的比较函数)
使用示例:对数组a[5]={2,1,3,6,4}进行从小到大的排序。只需要用sort(a,a+5);这个语句就可以了。
sort函数使用的是一种叫快速排序的算法,它的排序速度远远快于冒泡排序啊选择排序之类的。
sort函数默认从小到大排序,那么要是要让它按照其他排序准则(例如说从大到小)排序的话就需要自己写一个比较函数了。
例如说,要从大到小排序,那么就需要写这样一个比较函数:

bool compare(int a,int b)
{return a>b;
}

只需要将这个比较函数加入sort函数里面就可以了,就像这样:

sort(a,a+5,compare);

而对于结构体的排序,重载比较函数的功能就更为强大。
例如说,现在定义一个结构体:

struct point
{int x;int y;
};

然后用这个结构体定义数组point a[1000];
假设这个数组a已经有输入了,要对其进行排序,按x的从小到大排序,如果x相同的话就按y的从小到大排序。那么就可以拟一个这样的比较函数:

bool compare(point a,point b)
{return a.x<b.x||(a.x==b.x&&a.y<b.y);
}

然后调用该比较函数即可:

sort(a,a+1000,compare);

使用这个方法就能很容易地做出这道题了。

代码

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct f
{int month;int day;string s;
};
bool compare(f a,f b)
{if(a.month<b.month)return true;else if(a.month==b.month){if(a.day<b.day)return true;else if(a.day==b.day){int aa,bb;if(a.s=="Game")aa=1;else if(a.s=="Practice")aa=2;else if(a.s=="LIVE")aa=3;if(b.s=="Game")bb=1;else if(b.s=="Practice")bb=2;else if(b.s=="LIVE")bb=3;if(aa>bb)return true;return false;}return false;}return false;
}
int main()
{int n;while(cin>>n){f a[1000];for(int i=0;i<n;i++)cin>>a[i].month>>a[i].day>>a[i].s;sort(a,a+n,compare);for(int i=0;i<n;i++){cout<<a[i].month<<' '<<a[i].day<<' '<<a[i].s<<endl;}cout<<endl;}
}

【GZOJ】1373——凹酱的行程相关推荐

  1. 【图像分割】FCN学习笔记小整理

    目录 理论 代码 理论     CNN的平移不变性是什么? https://blog.csdn.net/ytusdc/article/details/107666902 基础的卷积.池化这些操作是满足 ...

  2. 语义分割(学习笔记)

    语义分割基础网络(学习笔记) 参考博客:1. 图像语义分割模型综述_李明朔的博客-CSDN博客_语义分割模型 2.史上最全语义分割综述(FCN,UNet,SegNet,Deeplab,ASPP-)_一 ...

  3. 「leetcode」332.重新安排行程【回溯算法/深搜】详细图解!

    本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...

  4. 巴厘岛上航直飞3N5D行程

    巴厘岛上航直飞 3N5D 行程 日期 城市 游览内容 住宿 D1 3/12 上海- 巴厘岛 上海- 巴厘岛FM841 (1655-2255 ) 请 各位贵宾于指定时间集合于上海浦东国际机场三楼国际出发 ...

  5. 2022-2028年中国酱腌菜行业市场研究及前瞻分析报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了酱腌菜行业相关概述.中国酱腌菜行业运行环境.分析了中国酱腌菜行业的现 ...

  6. 本田da屏怎么进wince系统_弥补小型车短板,东风本田全新LIFE“来福酱”上市

    "骨子里流淌着本田的纯正血统." 来源:东风本田官方 12月15日晚,东风本田全新LIFE(中文名:来福酱)正式上市.新车推出SPORT"灵动拍档"和CROSS ...

  7. PCL—低层次视觉—点云分割(基于凹凸性)

    1.图像分割的两条思路 场景分割时机器视觉中的重要任务,尤其对家庭机器人而言,优秀的场景分割算法是实现复杂功能的基础.但是大家搞了几十年也还没搞定--不是我说的,是接下来要介绍的这篇论文说的.图像分割 ...

  8. 谈点正经的:Papi酱能火,如果你现在学她却未必能火起来

    集才华美貌于一身的女子Papi酱刷屏了.先是融资1200万,估值3亿.其次,又即将在四月和罗辑思维一起联手推出"中国第一场新媒体广告拍卖会". 这些数据和事件串在一起,网红经济又被 ...

  9. AI一分钟 |世界上第一个无人驾驶出租车在迪拜投入使用,2030年无人驾驶将覆盖迪拜25%的交通行程

    整理 | 明明 一分钟AI 证监会为包括人工智能在内的4个行业开辟IPO快速通道:生物科技.云计算.人工智能.高端制造 南方财经联合科大讯飞推出"人工智能语音主持人"3月1日正式上 ...

最新文章

  1. 新建本地仓库,同步远程仓场景,出现git branch --set-upstream-to=origin/master master 解决方法...
  2. python写web难受-用Python编写web API的教程
  3. PC微信逆向:分析@群成员call
  4. 《城邦暴力团》:一部奇书、反书、隐书
  5. C++ 封装Lua之我行我素
  6. Android一个漂亮的日历组件源码
  7. 2022春节档新片预售总票房达1.08亿
  8. IOS AppUI规格指南
  9. php array_reduce 降维,使用array_reduce降维
  10. 对比学习视角:重新审视推荐系统的召回粗排模型
  11. python类中的 init_Python类中__init__()的作用
  12. 那些面对面试官的“绝杀技”
  13. Android滑动页面返回(自定义控件)
  14. 算法与数据结构篇(暂未解答)
  15. 数值积分——梯形公式和Simpson公式
  16. dfuse 与 Solana 宣布合作,为其高吞吐量区块链提供强大的数据解决方案
  17. PMBOK 项目管理 九大知识领域和五大流程
  18. 19.分布式事务编程
  19. 阿里云短信服务平台注册
  20. unity 如何切换输入系统(Input System)

热门文章

  1. Assets--unity资源映射
  2. Git 状态图标不显示的解决办法
  3. Python基础:打开和读写文件
  4. 笔记本电脑计算机里面怎么管理,Win7笔记本电脑如何分盘?
  5. 2021最新版RabbitMQ完整教程学习笔记
  6. MuseScore通过快捷键添加的低八度符号显示异常
  7. musescore 4.0 入门1
  8. 学术速运|一个可解释的多任务框架BiLAT能够准确预测细胞周期蛋白依赖的蛋白激酶抑制剂
  9. 我都觉得自己的名字很土,土得就像一个草包
  10. SQL Server查询结果导出到EXCEL表格