Codeforces 217E Alien DNA (树状数组求第k大)
来源:互联网 发布:中国电信4g网络覆盖 编辑:程序博客网 时间:2024/05/01 03:19
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <queue>#include <map>#include <set>#include <algorithm>#include <ctime>#include <functional>#pragma comment(linker,"/STACK:102400000,102400000")using namespace std;#define eps 1e-10#define N 4020000#define B 1000007#define M 3000020#define inf 0x3f3f3f3f#define LL long long#define pii pair<int, int>#define MP make_pair#define fi first#define se second#define md (ll + rr >> 1)#define ls (i << 1)#define rs (ls | 1)#define md (ll + rr >> 1)#define lson ll, md, ls#define rson md + 1, rr, rschar s[N];int k;int n;int L[N], R[N], q;int c[N];int now;int f[N];char ans[N];void del(int x) {while(x <= k) {c[x] --;x += x & -x;}}int getp(int x) {int ret = 0;for(int i = 1 << 21; i > 0; i >>= 1) {if(ret + i <= k && c[ret + i] < x) {x -= c[ret + i];ret += i;}}return ret + 1;}int main() {scanf("%s", s + 1);n = strlen(s + 1);scanf("%d", &k);scanf("%d", &q);for(int i = 1; i <= q; ++i) {scanf("%d%d", &L[i], &R[i]);}for(int i = 1; i <= k; ++i) {c[i] = i & -i;}now = k;for(int i = q; i >= 1; --i) {for(int x = L[i] + 1, j = L[i]; j <= R[i] && R[i] < now; ++j, x += 2, now--) {if(x > R[i]) x = L[i];int p = getp(R[i] + 1);del(p);f[p] = getp(x);}}int t = 0;for(int i = 1; i <= k; ++i) {if(f[i] == 0) ans[i] = s[++t];else ans[i] = ans[f[i]];}ans[k + 1] = '\0';puts(ans + 1);return 0;}
0 0
- Codeforces 217E Alien DNA (树状数组求第k大)
- 树状数组求第k大值
- 树状数组 求第K大的数 Swun1012
- hdu 5249 树状数组求第K大
- Poj 2985 树状数组求第k大
- hdu 5249 KPI 离线+树状数组求第k大
- Codeforces 827C/828E DNA Evolution[树状数组]
- Codeforces Round #423 E. DNA Evolution (树状数组)
- Codeforces Round #423 (Div. 2) E. DNA Evolution(树状数组)
- Codeforces 828 E DNA Evolution(树状数组方法)
- 求数组第K大
- poj 2985 The k-th Largest Group 并查集+树状数组求第k大
- poj_2985 The k-th Largest Group 树状数组求第K大
- poj2985 The k-th Largest Group 【树状数组求第K大】
- 树状数组求第K小元素
- 树状数组求第K小元素
- Codeforces 61E Enemy is weak 求i<j<k && a[i]>a[j]>a[k] 的对数 树状数组
- 树状数组:第K大值
- 线程的阻塞+通过外部干涉终止一个线程
- MATLAB计算矩阵间的欧式距离(不用循环!)
- 关于黑马程序员的自述
- 系统日志的处理方法和系统日志的处理平台
- 营业执照ocr识别sdk
- Codeforces 217E Alien DNA (树状数组求第k大)
- eclipse中查看框架的源码方式
- DES密码算法
- java 用String类实现十进制转二进制
- leetcode 103. Binary Tree Zigzag Level Order Traversal-深度遍历|广度遍历|递归|非递归
- apply()函数族
- 【Mysql】建立第一个存储过程
- NYOJ 27 水池数目 (BFS,DFS)
- 安卓学习计划