BestCoder #2 1001 TIANKENG’s restaurant && Nyoj 168 房间安排
2014-07-28 18:33
309 查看
这两个题是一类的题目。
就是典型的酒店安排房间以及饭店安排座椅等的问题。在生活中,是很常见的问题, 很有实用性。
题目链接:hdu 4883nyoj 168
nyoj 上的数据较水,也可以暴力就过的。
这是巧妙的用法,很是令人折服。 把开始时间和结束时间hash到数组上就可以了。开始时间的位置+k,表示在该时间入住k个房间,结束时间-k,表示在该事件空出k 个房间。个中奥妙还是仔细体会一下,很有技巧性的一类问题。。
Code:(以hdu 4883 为例)
技巧常常会令人震惊。。
就是典型的酒店安排房间以及饭店安排座椅等的问题。在生活中,是很常见的问题, 很有实用性。
题目链接:hdu 4883nyoj 168
nyoj 上的数据较水,也可以暴力就过的。
这是巧妙的用法,很是令人折服。 把开始时间和结束时间hash到数组上就可以了。开始时间的位置+k,表示在该时间入住k个房间,结束时间-k,表示在该事件空出k 个房间。个中奥妙还是仔细体会一下,很有技巧性的一类问题。。
Code:(以hdu 4883 为例)
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; const int N = 1445; int hash ; int main(){ int T; scanf("%d", &T); while(T --){ memset(hash, 0, sizeof(hash)); int n; scanf("%d", &n); for(int i = 1; i <= n; i++){ int k, x1, y1, x2, y2, bt, et; scanf("%d %d:%d %d:%d", &k, &x1, &y1, &x2, &y2); bt = x1 * 60 + y1; et = x2 * 60 + y2; hash[bt] += k; hash[et] -= k; } int ans = -1, sum = 0; for(int i = 0; i <= 1440; i ++){ sum += hash[i]; if(sum > ans) ans = sum; } printf("%d\n", ans); } return 0; }
技巧常常会令人震惊。。
相关文章推荐
- [原]NYOJ-房间安排168
- NYOJ168 房间安排
- nyoj.168 房间安排【水题】 20141110
- NYOJ 168 房间安排
- NYOJ 168-房间安排
- NYOJ-房间安排168
- 【NYOJ】[168]房间安排
- [河南省ACM省赛-第三届] 房间安排 (nyoj 168)
- NYOJ - 168 房间安排
- nyoj 168 房间安排
- nyoj 168 房间安排 第三届河南省程序设计大赛
- NYOJ 168 房间安排
- NYOJ-168 房间安排
- NYOJ-168房间安排
- nyoj_168 房间安排
- NYOJ 168 房间安排 (贪心)
- NYOJ 题目168 房间安排
- NYOJ--168--房间安排
- NYOJ-168-房间安排(第三届河南省程序设计大赛A题)