题意:公司有400个房间,单号对双号对门,中间有一条走廊, 现在要搬东西,给出要搬的次数,还有每次搬动的房间号, 每次搬动需要10分钟,搬动过程中的那段走廊不能被使用,求最大搬动时长。
解析:
按a从大到小排序。.由于奇偶数分列两边,所以需要将奇偶数房间号做一下变换:
如果值是奇数,则该值除以2再+1;如果是偶数直接除以二,此时号的范围变成1~200ac代码:#include<cstdio> #include<iostream> #include<fstream> #include<cmath> #include<cstring> using namespace std; const int N=202; int main() { int c; scanf("%d",&c); while(c--){ int m,n; int start,end; int i;//拌匀次数 int ccount[N]; scanf("%d",&i); memset(ccount,0,sizeof(ccount)); for(m=0;m<i;m++) { scanf("%d%d",&start,&end); start=(start-1)/2; end=(end-1)/2; if(start>end){ int temp=start; start=end; end=temp; } for(n=start;n<=end;n++) ccount[n]++; } int max=0; for(m=0;m<N;m++) if(ccount[m]>max) max=ccount[m]; printf("%d\n",max*10); } return 0; }
problem-1000-移动桌子
最新推荐文章于 2020-12-16 16:56:37 发布