Description
我们已经知道了,东东有很多的女朋友。每个女朋友都要东东陪她们,但是现在东东的女朋们每天也都需要上课,所以不可能一整天都有时间。现在的问题是,给出东东女朋友每一天的空闲时间,问东东最少用多少天可以陪每个女朋友至少一次。因为东东还要留很多时间来学习算法呢。当然当东东在陪一个女朋友时间段内不可以同时去陪另一个女朋友。
Input
第一个数t表示有t组测试实例,每组测试实例的第一个数n(n<=100)表示东东有n个女朋友。接下来的n行,每行有两个数s,e表示东东的女朋友的空闲时间的起始时间和终止时间(0 < s<=e<=24)。
Output
输出东东所需要的最少的天数来陪他的女朋友们
Sample Input
1
3
1 8
2 3
4 7
Sample Output
2
这道题呢,刚写的时候,想到的都是一些奇怪的方法,或者是不好的方法,我刚开始还想着这会不会是动态规划呢,想了一下觉得不太靠谱,最后网上搜了一下,原来有这么简单的方法。但是,方法虽然简单,但是也不是那么容易想到的。代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 30;
int main()
{
int t;
cin>>t;
while(t--)
{
int arr[N];
int n;
cin>>n;
memset(arr, 0, sizeof(arr));
while(n--)
{
int start, endd;
scanf("%d%d", &start, &endd);
for(int i = start; i <= endd; i++)
arr[i]++;
}
int ans = 0;
for(int i = 0; i <= 24; i++)
ans = max(ans, arr[i]);
cout<<ans<<endl;
}
return 0;
}