读书人

2013腾讯编程马拉松预赛第一场(3月21

发布时间: 2013-03-25 15:43:04 作者: rapoo

2013腾讯编程马拉松初赛第一场(3月21日) 解题报告

A题 (hdu 4505)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4505

解题思路: 一次遍历就可以,这道题可以推出公式 max*10+(k*5)+n

max最高楼层,k多少个楼层需要开门,n一共多少个人

代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 2000int time[MAX];int main(){    int n,i,t,a,b,c,d,s,k;    while(scanf("%d",&n)!=EOF)    {        memset(time,-1,sizeof(time));  //-1代表空闲        for(i=0;i<n;i++)        {            scanf("%d:%d %d:%d",&a,&b,&c,&d);            s=a*60+b;            t=c*60+d;            memset(time+s,0,(t-s)*sizeof(time[0]));  //memset代替for循环        }                                            //0代表忙碌        for(i=0,k=0;i<1440;i++)            if(time[i]==-1)                k++;        printf("%d\n",k);    }    return 0;}
注:原创文章,转载请注明出处: http://blog.csdn.net/qq7366020

1楼eapink28分钟前
很好的习惯,加油喔!

读书人网 >编程

热点推荐