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;
}