您的位置:首页 > 其它

HDU-1050:Moving Tables(逻辑吧···)

2015-01-25 23:04 323 查看
题目大致意思:

在一个长走廊里搬桌子,走廊的两侧都是房间,把桌子从一个房间搬到另外一个房间,走廊的宽度只能允许一个桌子通过,每次搬桌子需要10分钟(允许同时移动在不交叉的走廊中桌子),问最少多长时间搬完!

#include <iostream>
#include <algorithm>//swap() 
using namespace std;
 
int main() 
{
   int t; 
   cin>>t;  
   while( t-- ) 
   { 
        int N,a[200]={0};//初始化走廊没有被共享       
        cin>>N; 
        int max;
  	    while(N--){ 
            int s,d; 
            cin>>s>>d;
             
            s=(s-1)/2; 
            d=(d-1)/2; 
                   
            if(s>d) swap(s,d); //因为数据要单向处理 
            
            for(int i=s;i<=d;i++) 
                  a[i]++; 
            }
            max=-1;
          
            for(int i=0;i<200;i++)//不难理解重叠数最大的就是所需最少时间 
                if(a[i]>max) 
                   max=a[i];
            
            cout<<max*10<<endl; 
   } 
   return 0; 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: