HDU 4509 湫湫系列故事——减肥记II(线段树)
2013-05-04 11:52
381 查看
刚开始的想法是线段树区间求和,延迟更新.
要注意区间是半开的[x,y)
后来发现直接用数组都可以过....
要注意区间是半开的[x,y)
后来发现直接用数组都可以过....
#include <iostream> #include <cstdio> using namespace std; #define lson l, m, rt << 1 #define rson m + 1, r, rt << 1 | 1 const int maxn = 1441; int segs[maxn << 2], f[maxn << 2], n; void build(int l, int r, int rt){ segs[rt] = 0; f[rt] = 0; if(l == r)return; int m = (l + r) >> 1; build(lson),build(rson); } void pushDown(int l, int r, int rt){ if(f[rt]){ int m = (l + r) >> 1; f[rt << 1] = f[rt << 1 | 1] = 1; segs[rt << 1] = m - l + 1; segs[rt << 1 | 1] = r - m; f[rt] = 0; } } void pushUp(int rt){ segs[rt] = segs[rt << 1] + segs[rt << 1 | 1]; } void update(int L, int R, int l, int r, int rt){ if(L <= l && r <= R){ f[rt] = 1; segs[rt] = r - l + 1; return ; } pushDown(l, r, rt); int m = (l + r) >> 1; if(L <= m)update(L, R, lson); if(R > m) update(L, R, rson); pushUp(rt); } int query(int L, int R, int l, int r, int rt){ if(L <= l && r <= R){ return segs[rt]; } pushDown(l, r, rt); int m = (l + r) >> 1, ret = 0; if(L <= m)ret += query(L, R, lson); if(R > m) ret += query(L, R, rson); pushUp(rt); return ret; } int main(){ while (~scanf("%d", &n)){ build(0, maxn, 1); while (n--){ int a1, b1, a2, b2; scanf("%d:%d %d:%d", &a1, & b1, &a2, &b2); int l = a1 * 60 + b1, r = a2 * 60 + b2; if(abs(l -r) == 0)continue; update(l, r - 1, 0, maxn, 1); } printf("%d\n",1440 - query(0, 1440, 1, maxn, 1)); } return 0; }
相关文章推荐
- HDU 4509 湫湫系列故事——减肥记II(暴力 || 线段树单点替换)
- HDU 4509 湫湫系列故事——减肥记II(模拟)
- HDU 4509 湫湫系列故事——减肥记II (简单模拟)
- HDU 4509 湫湫系列故事——减肥记II
- HDU 4509 湫湫系列故事——减肥记II 线段树
- HDU 4509 湫湫系列故事——减肥记II
- HDU 4509 湫湫系列故事——减肥记II(暴力模拟即可)
- hdu 4509 湫湫系列故事――减肥记II
- HDOJ 4509 湫湫系列故事——减肥记II
- [HDOJ 4509] 湫湫系列故事――减肥记II
- hdoj 4509 湫湫系列故事——减肥记II 【线段树】
- Hdu 4509 湫湫系列故事——减肥记II
- HDU4509-湫湫系列故事——减肥记II(线段树)
- HDOJ 4509 湫湫系列故事——减肥记II(2013腾讯编程马拉松)
- hdu 4508/hdu 4509 湫湫系列故事——减肥记
- hdu 4544 湫湫系列故事——消灭兔子(贪心+优先队列)
- HDU 4514 湫湫系列故事——设计风景线(并查集+树的直径)
- hdu 4544 湫湫系列故事——消灭兔子
- hdu 4508 湫湫系列故事——减肥记I(完全背包)
- 2013腾讯编程马拉松初赛第一场(3月21日) 湫湫系列故事——减肥记II ----线段树