杭电1050

/*题意大概是走廊不能共用但是如果是互不干扰的路径可以同时进行,所以算出共同路径*10就是我们要求的
记住不是给房间做标记是给走廊做标记(1,2) 合并为一个走廊 (10,20)经过走廊4-9的五个走道 

*/
代码如下:

#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
int rooms[201];
int main(){
 int T,N,a,b,max=0;
 while(scanf("%d",&T)!=EOF){
 while(T--){
  scanf("%d",&N);
  for(int j=0; j<N; j++){
   scanf("%d %d",&a,&b);
   if(a>b)
     swap(a,b);
   for(int k=(a-1)/2; k<(b-1)/2; k++)//一次给a到b所经过的走廊标号
     {rooms[k]++;
     }
  }
  for(int i=0; i<201; i++)//一次遍历找到被经过的最多的走廊 就是需要等待的次数
    if(rooms[i]>max)
            max=rooms[i];
  printf("%d\n",max*10);
      memset(rooms,0,sizeof(rooms));
      max=0;
 }
 }
}

猜你喜欢

转载自blog.csdn.net/bai_guo/article/details/79736182