2016/10/8 1001. 舞蹈室安排
2016-10-08 17:54
127 查看
又是一个新的套路,首先将每个时间段按结束时间排序后,遍历每个时间段,如果开始时间比前一个的结束时间晚就可以安排下去,这样子的通过数是最多的。
#include <iostream>
#include <algorithm>
using namespace std;
class Time
{
public:
Time(int a = 0, int b = 0)
{
begin = a;
end = b;
}
int begin;
int end;
}time[150];
bool cmp(Time a, Time b)
{
return a.end < b.end;
}
int main()
{
int n;
cin >> n;
while (n--)
{
int m;
cin >> m;
int total = m;
while (m)
{
int a, b;
cin >> a >> b;
time[total - m] = Time(a, b);
m--;
}
sort(time, time + total, cmp);
int ans = 0;
Time temp;
for (int i = 0; i <= total - 1; i++)
{
if (i == 0)
{
ans++;
temp = time[i];
continue;
}
if (time[i].begin > temp.end)
{
temp = time[i];
ans++;
}
}
cout << ans << endl;
}
}
#include <iostream>
#include <algorithm>
using namespace std;
class Time
{
public:
Time(int a = 0, int b = 0)
{
begin = a;
end = b;
}
int begin;
int end;
}time[150];
bool cmp(Time a, Time b)
{
return a.end < b.end;
}
int main()
{
int n;
cin >> n;
while (n--)
{
int m;
cin >> m;
int total = m;
while (m)
{
int a, b;
cin >> a >> b;
time[total - m] = Time(a, b);
m--;
}
sort(time, time + total, cmp);
int ans = 0;
Time temp;
for (int i = 0; i <= total - 1; i++)
{
if (i == 0)
{
ans++;
temp = time[i];
continue;
}
if (time[i].begin > temp.end)
{
temp = time[i];
ans++;
}
}
cout << ans << endl;
}
}
相关文章推荐
- sicily考试模拟题-1000超级和 1001会议室安排 1002二叉树比较
- 1001. 会议安排
- 1001. 会议安排
- 2017.1.10 算法测试题集 - 1001 - 会议安排问题
- 1001. 会议安排
- 1001.会议安排
- [sicily]1001 会议安排
- 【Sicily】1001. 会议安排
- 【Sicily】1001. 会议安排
- [sicily] 1001. 会议安排
- 1001. 会议安排
- BestCoder #2 1001 TIANKENG’s restaurant && Nyoj 168 房间安排
- 算法机考模拟题1001.会议安排
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- Beta版本冲刺计划及安排
- HDU-计算机学院大学生程序设计竞赛(2015’11)1001 搬砖(贪心)
- HD1001 java版答案
- 北大OJ1001
- [1001]以实际案例说链表遍历与 翻转
- BestCoder Round #66 (div.2)1001 GTW likes math HDU5595