1004贪心算法acm
来源:互联网 发布:csol网络连接中断 编辑:程序博客网 时间:2024/04/26 12:18
1.题目编号:1004;
2.简单题意:想要看最多的节目,输入多组数据,以及节目开始时间跟结束时间,输出能看的最多节目数;
3.解题思路形成过程:如果将开始时间进行排序,开始时间相同的按结束时间升序排序,这样其中数据可能包括这样的例子:1 2 ,1 3,2 3 。这样的例子将会使结果少一组数据,会出现wa。如果将结束时间先进行排序,结束时间相同的按开始时间升序排序,从第一个开始循环,这样才能找出最先结束的,看到最多节目。
4.感想:这道题与老师上课讲的演唱会占用一个场地的那道例题大体思路基本一致,当时考虑这道题仅仅是考虑将开始时间排序,这样就可能漏到情况,想了好久,想到了一个特别麻烦的解法,但是那要绕好几个圈,当考虑到将结束时间排序才恍然大悟。
5.AC代码:
#include<iostream>
#include <algorithm>
using namespace std;
struct jm
{
int ti_s;
int ti_e;
}ti[101];
bool cmp(jm a, jm b)
{ if(a.ti_e < b.ti_e) return true ;
if(a.ti_e == b.ti_e&&a.ti_s < b.ti_s) return true ;
else return false;
}
int main()
{
int n,time,time_max;
while(cin>>n&&n!=0)
{
for(int i=0;i<n;i++)
{
cin>>ti[i].ti_s>>ti[i].ti_e;
}
sort(ti, ti+n, cmp);
// for(int i=0;i<n;i++) cout<<ti[i].ti_s<<ti[i].ti_e<<endl;
time=1;
int a=ti[0].ti_e;
for(int j=0;j<n-1;j++)
{
if(ti[j+1].ti_s>=a)
{
time++;
a=ti[j+1].ti_e;
}
}
cout<<time<<endl;
}
return 0;
}
- 1004贪心算法acm
- ACM--贪心算法
- ACM 贪心算法
- 1006-贪心算法acm
- ACM 贪心算法详解
- acm——贪心算法
- acm-背包问题(贪心算法)
- ACM--贪心算法--独木舟问题
- ACM--Doing Homework again(贪心算法)
- 杭电acm 2037贪心算法
- acm 1000 Moving Tables(贪心算法)
- ACM--贪心算法--活动安排问题
- ACM第一专题—贪心算法总结
- ACM--贪心算法--活动安排问题二
- acm之贪心算法题目1
- acm之贪心算法题目2
- acm之贪心算法题目3
- acm之贪心算法题目4
- mysql索引失效的几种情况
- [leetcode] p338 Count Bits
- 8.configurable product
- 一个简单的自定义popupwindow
- LeetCode 4 Median of Two Sorted Arrays(二分)
- 1004贪心算法acm
- Ubuntu 使用技巧
- Linux wget命令详解
- Threadpool & C
- ubuntu安装中文字符支持
- 南阳题目96-n-1位数
- Django:视图和URL配置
- Regex(Regular Expression)正则表达式-----持续更新
- HTTP的get、post