HDU 1050 Moving Tables

1.如果没有重合,总时间为10

2.影响搬运时间的是两个区间的重合,每次重合时间加10

3.从整体上看,每10分钟选择全部不冲突的区间搬运,程序上用一个cover数组记录区间被覆盖的次数,最后比较最大值,得到最大时间

#include <iostream>
#include
<string.h>
using namespace std;

int main(){
int t;
int cover[200];
cin
>> t;
while( t-- ){
memset(cover,
0,sizeof(cover));
int n, s, f;
cin
>> n;
while( n-- ){
cin
>> s >> f;
s
= (s - 1) / 2; //相邻的奇数和偶数化成同一坐标
f = (f - 1) / 2;
if( s > f )
s
^= f ^= s ^= f;
for(int i = s; i <= f; ++i)
cover[i]
++;
}
int max = -1;
for(int i = 0; i < 200; ++i){
if( cover[i] > max )
max
= cover[i];
}
cout
<< max * 10 << endl;
}
return 0;
}
posted @ 2011-04-20 03:43  L..  阅读(196)  评论(0编辑  收藏  举报