首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-03-25 
2013腾讯编程马拉松初赛第一场(3月21日) 解题报告A题 (hdu 4505)题目链接:http://acm.hdu.edu.cn/showprob

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分钟前
很好的习惯,加油喔!

热点排行