hdu 1050 Moving Tables

很明显,要计算出搬桌子的最短时间,就是算出最多重叠的时间段有多少,

计算重叠的区间的最多的个数,相当于计算数轴上某一个点被堆叠的最多的次数,所以接下来就好理解了

看代码……

#include <iostream>
using namespace std;
int main()
{
    int t,i,j,N,P[200];
   int s,d,temp,k,min;
   cin>>t;
   for(i=0;i<t;i++)
      {
         for(j=0;j<200;j++)
              P[j]=0;
         cin>>N;
        for(j=0;j<N;j++)
            {
               cin>>s>>d;
               s=(s-1)/2; //相对的缩短区间长度,提高效率
               d=(d-1)/2;               
             if(s>d)
                  { temp=s;
                     s=d;
                     d=temp; }
               for(k=s;k<=d;k++) //计算某一个点被重叠的次数
                  P[k]++;
            }
         min=-1;
         for(j=0;j<200;j++)
            if(P[j]>min) //找出重叠次数最多的点
               min=P[j];
         cout<<min*10<<endl;
      }
   return 0;
}
posted @   枕边梦  阅读(202)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示