HDU4509 湫湫系列故事——减肥记II【格式输入+存储设置+暴力+水题】
来源:互联网 发布:ipad商标侵权案 知乎 编辑:程序博客网 时间:2024/06/10 16:56
湫湫系列故事——减肥记II
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3458 Accepted Submission(s): 1456
Problem Description
虽然制定了减肥食谱,但是湫湫显然克制不住吃货的本能,根本没有按照食谱行动!
于是,结果显而易见…
但是没有什么能难倒高智商美女湫湫的,她决定另寻对策——吃没关系,咱吃进去再运动运动消耗掉不就好了?
湫湫在内心咆哮:“我真是天才啊~\(≧▽≦)/~”
可是,大家要知道,过年回家多忙啊——帮忙家里做大扫除,看电影,看小说,高中同学聚餐,初中同学聚餐,小学同学聚餐,吃东西,睡觉,吃东西,睡觉,吃东西,睡觉……所以锻炼得抽着时间来。
但是,湫湫实在太忙了,所以没时间去算一天有多少时间可以用于锻炼,现在她把每日行程告诉你,拜托你帮忙算算吧~
皮埃斯:一天是24小时,每小时60分钟
Input于是,结果显而易见…
但是没有什么能难倒高智商美女湫湫的,她决定另寻对策——吃没关系,咱吃进去再运动运动消耗掉不就好了?
湫湫在内心咆哮:“我真是天才啊~\(≧▽≦)/~”
可是,大家要知道,过年回家多忙啊——帮忙家里做大扫除,看电影,看小说,高中同学聚餐,初中同学聚餐,小学同学聚餐,吃东西,睡觉,吃东西,睡觉,吃东西,睡觉……所以锻炼得抽着时间来。
但是,湫湫实在太忙了,所以没时间去算一天有多少时间可以用于锻炼,现在她把每日行程告诉你,拜托你帮忙算算吧~
皮埃斯:一天是24小时,每小时60分钟
输入数据包括多组测试用例。
每组测试数据首先是一个整数n,表示当天有n件事要做。
接下来n行,第i行是第i件事的开始时间和结束时间,时间格式为HH:MM。
[Technical Specification]
1. 1 <= n <= 500000
2. 00 <= HH <= 23
3. 00 <= MM <= 59
Output每组测试数据首先是一个整数n,表示当天有n件事要做。
接下来n行,第i行是第i件事的开始时间和结束时间,时间格式为HH:MM。
[Technical Specification]
1. 1 <= n <= 500000
2. 00 <= HH <= 23
3. 00 <= MM <= 59
请输出一个整数,即湫湫当天可以用于锻炼的时间(单位分钟)
Sample Input115:36 18:40401:35 10:3604:54 22:3610:18 18:4011:47 17:53
Sample Output
1256179Hint大量输入,建议用scanf读数据。
Source
2013腾讯编程马拉松初赛第一场(3月21日)
问题链接:HDU4509 湫湫系列故事——减肥记II
问题简述:参见上文。
问题分析:
这个问题可以用线段树来解决。然而,暴力法+程序技巧也是能够解决问题的。
一天有24小时,共24*60=1440分钟。
给定的时间范围也许有重叠,所以可以对一天中的每件事情的每一分钟进行标记,再统计未被标记的分钟数,就是能够用于锻炼。
程序说明:
标记数组flag[]的类型是关键,用char类型是最合适的(用int的话,既浪费存储又浪费时间),可以最佳配合函数memset(),时间上也应该是快的。
函数memset()的使用方式也是这个程序的一个要点,该函数是可以进行局部设置的。
题记:(略)
参考链接:(略)
AC的C语言程序如下:
/* HDU4509 湫湫系列故事——减肥记II */#include <stdio.h>#include <string.h>#define N 24 * 60char flag[N + 1];int main(void){ int n, sh, sm, eh, em, i; while(scanf("%d", &n) != EOF) { memset(flag, 1, sizeof(flag)); while(n--) { scanf("%d:%d%d:%d", &sh, &sm, &eh, &em); int start = sh * 60 + sm; int end = eh * 60 + em; memset(flag + start, 0, end - start); } int ans = 0; for(i=0; i<N; i++) if(flag[i]) ans++; printf("%d\n", ans); } return 0;}
阅读全文
0 0
- HDU4509 湫湫系列故事——减肥记II【格式输入+存储设置+暴力+水题】
- HDU4509:湫湫系列故事——减肥记II
- HDU4509-湫湫系列故事——减肥记II(线段树)
- hdu4509 湫湫系列故事——减肥记II (离散化思想)
- 【模拟】HDU4509湫湫系列故事——减肥记II
- HDU 4509 湫湫系列故事——减肥记II(暴力 || 线段树单点替换)
- 1005 湫湫系列故事——减肥记II
- 湫湫系列故事——减肥记II
- 湫湫系列故事——减肥记II
- 湫湫系列故事——减肥记II
- 湫湫系列故事——减肥记II
- HDU 4509 湫湫系列故事——减肥记II 线段树
- Hdu 4509 湫湫系列故事——减肥记II
- HDOJ 4509 湫湫系列故事——减肥记II
- HDU OF 4509 湫湫系列故事——减肥记II
- HDU 4509 湫湫系列故事——减肥记II
- HDU 4509 湫湫系列故事——减肥记II(线段树)
- HDOJ 4509 湫湫系列故事——减肥记II(2013腾讯编程马拉松)
- 注释ASPX文件内容
- HttpClient源码解析系列:第二篇:极简版实现
- http协议的get和post方法的区别
- Spring_Spring + Apache Curator 实现分布式应用单节点执行Job
- HDU 1754 I Hate It (线段树+单点更新+区间询问)
- HDU4509 湫湫系列故事——减肥记II【格式输入+存储设置+暴力+水题】
- PAT 1023. 组个最小数 (20)
- C#-dictionary用法
- 怎么把mirtoolbox的提取函数的返回值转换成数字
- Smallest Difference (dfs)深度搜索
- windows上redis集群搭建附github下载地址
- javascript基础—keycode
- 关于MLX90614红外测温模块SMBus 协议的学习笔记<一>(附MLX90614中文资料,英文资料)
- this,call,apply