hdu 1050 moving tables 贪心

来源:互联网 发布:mac弱点设计cad 编辑:程序博客网 时间:2024/05/22 06:10

题目链接

就是寻找那个房间前 桌子经过的次数, 桌子经过那个房间就对将房间的次数加1;然后找到从那个房间前移动的次数最多,然后乘以时间10分钟就可以了。

找到最大的就行了

要注意:

trick 1  输入数据 若  5 3  即5号房要移到3号房,注意调换成由3号房到5号房等价

trick 2  注意有 2号房移动打3号房 同时也占用了 1号房和4号房的位置

这个我讲课的时候老汪也没有跟我说一声~~误认子弟啊

post code:

#include<stdio.h>#include<string.h>int a[1000];int main(){    int x;    scanf("%d",&x);    while(x--){        int n,left,right;        scanf("%d",&n);        memset(a,0,sizeof(a));        for(int i=1;i<=n;i++){           scanf("%d%d",&left,&right);           if(left>right){   //调换房间号              int temp;              temp=left;              left=right;              right=temp;                          }           if(left%2==0)left--;    //trick 2 注意事项           if(right%2==1)right++;           for(int j=left;j<=right;j++)               a[j]++;        }               int max=-1;        for(int i=1;i<=400;i++){          if(max<a[i])max=a[i];                            }               printf("%d\n",max*10);    }            }


原创粉丝点击