数据结构作业——青子的生日
Description
青子的生日快到了,快斗计划着带青子去游乐场玩。游乐场有好多游戏项目,每个游戏项目都有自己的开始和结束时间。同一时间只能玩一个游戏,前一个游戏结束后可以马上开始下一个游戏。为了让青子过一个愉快的生日,快斗决定带青子玩尽可能多的游戏。因为青子是个从不半途而废的女孩,所以他们必须完整地玩完选择的每个游戏。
Input
输入第一行为一个正整数 n(1<=n<=100) ,表示可供选择的游戏项目数。
然后是 n 行数据。每行包括 2 个数据 Ti_s,Ti_e (1<=i<=n),分别表示第 i个游戏项目的开始和结束时间(Ti_s<Ti_e,范围均在 int 内) ,为了简化问题,每个时间都用一个正整数表示。
Output
输出最多能完整玩完的游戏项目数。
Sample Input
41
2
2 3
3 4
4 5
Sample Output
4
思路
区间调度问题,要使得能完整玩完的游戏项目数最多,那么应该贪心的选取时间结束越早的游戏,因为结束时间越早,那么之后可选的游戏就相应越多。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; const int maxn = 105; struct Node{ int first,second; }node[maxn]; bool cmp( struct Node x, struct Node y) { return x.second < y.second; } int main() { int N,i; while (~ scanf ( "%d" ,&N)) { for (i = 0;i < N;i++) { scanf ( "%d%d" ,&node[i].first,&node[i].second); } sort(node,node+N,cmp); int ans = 0,t = 0; for (i = 0;i < N;i++) { if (t <= node[i].first) { ans++; t = node[i].second; } } printf ( "%d\n" ,ans); } return 0; } |
┆ 凉 ┆ 暖 ┆ 降 ┆ 等 ┆ 幸 ┆ 我 ┆ 我 ┆ 里 ┆ 将 ┆ ┆ 可 ┆ 有 ┆ 谦 ┆ 戮 ┆ 那 ┆ ┆ 大 ┆ ┆ 始 ┆ 然 ┆
┆ 薄 ┆ 一 ┆ 临 ┆ 你 ┆ 的 ┆ 还 ┆ 没 ┆ ┆ 来 ┆ ┆ 是 ┆ 来 ┆ 逊 ┆ 没 ┆ 些 ┆ ┆ 雁 ┆ ┆ 终 ┆ 而 ┆
┆ ┆ 暖 ┆ ┆ 如 ┆ 地 ┆ 站 ┆ 有 ┆ ┆ 也 ┆ ┆ 我 ┆ ┆ 的 ┆ 有 ┆ 精 ┆ ┆ 也 ┆ ┆ 没 ┆ 你 ┆
┆ ┆ 这 ┆ ┆ 试 ┆ 方 ┆ 在 ┆ 逃 ┆ ┆ 会 ┆ ┆ 在 ┆ ┆ 清 ┆ 来 ┆ 准 ┆ ┆ 没 ┆ ┆ 有 ┆ 没 ┆
┆ ┆ 生 ┆ ┆ 探 ┆ ┆ 最 ┆ 避 ┆ ┆ 在 ┆ ┆ 这 ┆ ┆ 晨 ┆ ┆ 的 ┆ ┆ 有 ┆ ┆ 来 ┆ 有 ┆
┆ ┆ 之 ┆ ┆ 般 ┆ ┆ 不 ┆ ┆ ┆ 这 ┆ ┆ 里 ┆ ┆ 没 ┆ ┆ 杀 ┆ ┆ 来 ┆ ┆ ┆ 来 ┆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)