CF479C 题解

洛谷链接&CF 链接

1|0题目简述

一个人想要安排期末考试的时间。

n 场考试,每场考试有两个时间 xi,yi,一个是老师规定的时间,另外一个是他与老师商量好的考试时间。

如果错过了,那就只能按照原来的考试时间考试。

规定:只能按照原定考试的日期顺序进行考试的情况下,输出考完试的日期。

2|0思路

简单思维题,因为只能按照原定顺序进行考试,所以用结构体储存两个时间点,接着按照 xi 的非递减顺序排序,依次遍历,如果当前 ans 小于 yi 更新 ans 的值即可,否则 ans 赋值为当前 xi 的值。

下面就是代码实现:

#include<iostream> #include<algorithm> using namespace std; struct node { int x, y; // 记录两个时间点 } p[5005]; // 注意数据范围 int n; // 排序函数,上面解释过 bool cmp(node a, node b) { if(a.x == b.x) return a.y < b.y; return a.x < b.x; } int main(){ cin >> n; for(int i = 1; i <= n; i ++) cin >> p[i].x >> p[i].y; // 输入 sort(p + 1, p + n + 1, cmp); // 按照 x 的非递减顺序排序 int ans = p[1].y; // 初始化 ans for(int i = 1; i <= n; i ++) if(ans <= p[i].y) ans = p[i].y; // 上述情况 1 else ans = p[i].x; // 上述情况 2 cout << ans << endl; // 输出 return 0; }

提交记录

The End!


__EOF__

本文作者So_noSlack
本文链接https://www.cnblogs.com/So-noSlack/p/17601076.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   So_noSlack  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示