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

你可能感兴趣的:(table)