HDU 4288 Coder 【线段树+离线处理+离散化】
2013-10-06 17:34
369 查看
题意略。
离线处理,离散化。然后就是简单的线段树了。需要根据mod 5的值来维护。具体看代码了。
离线处理,离散化。然后就是简单的线段树了。需要根据mod 5的值来维护。具体看代码了。
/* 线段树+离散化+离线处理 */ #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; #define N 100010 ll sum[N<<2][5]; int a , n, m, cnt[N<<2]; struct node { char c; int x; } q ; void Up(int rt) { cnt[rt] = cnt[rt<<1] + cnt[rt<<1|1]; for (int i=0; i<5; i++) sum[rt][i] = sum[rt<<1][i] + sum[rt<<1|1][(i-cnt[rt<<1]%5+5)%5]; } void add(int idx, int val, int l, int r, int rt) { if (l == r) { cnt[rt] = 1; sum[rt][1] = val; return ; } int mid = (l + r) >> 1; if (idx <= mid) add(idx, val, l, mid, rt<<1); else add(idx, val, mid+1, r, rt<<1|1); Up(rt); } void del(int idx, int l, int r, int rt) { if (l == r) { sum[rt][1] = cnt[rt] = 0; return ; } int mid = (l + r) >> 1; if (idx <= mid) del(idx, l, mid, rt<<1); else del(idx, mid+1, r, rt<<1|1); Up(rt); } int main() { char s[10]; while (scanf("%d", &n) == 1) { m = 0; for (int i=0; i<n; i++) { scanf(" %s", s); q[i].c = s[0]; if (s[0] != 's') { scanf("%d", &q[i].x); a[m++] = q[i].x; } } sort(a, a+m); m = unique(a, a+m) - a; memset(cnt, 0, sizeof(cnt)); memset(sum, 0, sizeof(sum)); int pos; for (int i=0; i<n; i++) { if (q[i].c == 's') printf("%I64d\n", sum[1][3]); else { pos = lower_bound(a, a+m, q[i].x) - a + 1; if (q[i].c == 'a') add(pos, q[i].x, 1, m, 1); else del(pos, 1, m, 1); } } } return 0; }
相关文章推荐
- HDU 4288 Coder 【线段树+离线处理+离散化】
- HDU 4288 Coder(线段树+离线处理+离散化)
- HDU 4288 Coder(线段树+离线处理)
- HDU 4288 && Codeforces 85D (线段树+离散化+离线处理)
- HDU 4288 Coder ( 离散化 + 离线 + 线段树 )
- HDU 4288 Coder 离线线段树部分更新
- HDU 4288 线段树 + 离线处理
- hdu4288--Coder--线段树--离线处理+离散化+想法!
- HDOJ 4288 Coder (离线处理 + 线段树)
- HDU 4288 Coder (技巧性暴力模拟+二分||线段树+离线操作)
- hdu 4288 Coder(线段树+离散化,lower_bound&&upper_bound的运用)
- HDU 4288 Coder(12年成都网络赛-A题-离线 + 线段树)
- Coder- HDU 4288 线段树
- hdu 5381 The sum of gcd (线段树x树状数组x区间和维护进阶x离线处理)
- HDU - 4630 No Pain No Game (线段树 + 离线处理)
- 【HDU4288 Coder】离线+离散化+5颗线段树的更新操作
- hdu 4288 Coder(树形结构-线段树)
- HDU-4288 Coder 线段树
- gcd(线段树离线处理)——HDU 4630
- HDU 4288 Coder [线段树]