#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int a[210];
int main()
{ int k,n,x,y,i,j,l;
// freopen("in.txt","r",stdin);
cin>>k;
for (l=1;l<=k;l++)
{
cin>>n;
memset(a,0,sizeof(a));
for (i=1;i<=n;i++)
{
cin>>x>>y;
x=(x+1)/2;
y=(y+1)/2;
if (x<y) for (j=x;j<=y;j++) a[j]++;
else for (j=y;j<=x;j++) a[j]++;
}
int m;
m=0;
for (i=1;i<=200;i++)
if (a[i]>m) m=a[i];
cout<<m<<'0'<<endl;
}
return 0;
}
如图所示:有400个房间,现在要搬一些物品,从room a到room
b 一次搬运需要时间是10分钟,且此次搬运期间room a和room b前的走廊是一直占用的,如果其他的搬运也要经过这些走廊,则它们不能同时进行,互不干扰的搬运可以同时进行。给出一组room a 到room b 问如何安排使搬运时间最小。
用数组a[ ]记录每个房间前的走廊被用过多少次,则答案即为d[i]*10;每扫描一个点将数组这个范围内的值加1,注意,范围的确定,若下限为偶数,则下限需减一,若上限为奇数,则上限需加1,例如,s=4,t=7时,房间4到房间7之间的走廊都要占用,而房间4前的走廊与房间3之间的走廊是一样的,房间7与房间8之间的走廊也是一样的,所以要扩大数组的更新范围为[3,8]。