hdu4339query
来源:互联网 发布:九九乘法表 java 编辑:程序博客网 时间:2024/06/05 15:48
Query
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 3188 Accepted Submission(s): 1037
Problem Description
You are given two strings s1[0..l1], s2[0..l2] and Q - number of queries.
Your task is to answer next queries:
1) 1 a i c - you should set i-th character in a-th string to c;
2) 2 i - you should output the greatest j such that for all k (i<=k and k
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;const int maxn = 1000007;int flag[maxn<<2],sum[maxn<<2],t,cas = 1;char s1[maxn],s2[maxn];#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1void push(int rt){ sum[rt] = sum[rt<<1] + sum[rt<<1|1];}void build(int l,int r,int rt){ if(l == r) { if(s1[l] == s2[l]) flag[l] = 1; else flag[l] = 0; sum[rt] = flag[l]; return ; } int m = (l+r)>>1; build(lson); build(rson); push(rt);}void update(int op,int pos,char c,int l,int r,int rt){ if(l == r) { if(op == 1) s1[l] = c; if(op == 2) s2[l] = c; if(s1[l] == s2[l]) flag [l] = 1; else flag[l] = 0; sum[rt] = flag[l]; return ; } int m = (l+r)>>1; if(pos<=m) update(op,pos,c,lson); else update(op,pos,c,rson); push(rt);}int query(int pre,int l,int r,int rt){ if(l==r)return sum[rt]; if(l<=pre&&pre<=r) { if(sum[rt]==r-l+1) return r-pre+1; else { int m=(l+r)>>1; int cat=0; if(pre<=m) { cat+=query(pre,lson); if(cat==m-pre+1) cat+=query(m+1,rson); } else cat+=query(pre,rson); return cat; } }}int main(){ int t; while(scanf("%d",&t)!=EOF) { scanf("%s%s",s1+1,s2+1); int len1=strlen(s1+1); int len2=strlen(s2+1); int len=max(len1,len2); build(1,len,1); int m,num,pre,idx; char c[2]; scanf("%d",&m); printf("Case %d:\n",cas++); while(m--) { scanf("%d",&num); if(num==2) { scanf("%d",&pre); printf("%d\n",query(pre+1,1,len,1)); } else { scanf("%d%d%s",&idx,&pre,&c); update(idx,pre+1,c[0],1,len,1); } } } return 0;}
0 0
- hdu4339query
- 【POJ 2001 Shortest Prefixes】+ 字典树
- 使用fsdbdebug抽取fsdb文件中的信号列表
- HBase插入和读取图片
- JAVA加密解密之DSA(Digital Signature Algorithm)算法
- storm
- hdu4339query
- 关于老赵让改成bootstrap框架搭建的过程
- OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
- hive数据倾斜原因和解决方法
- Matlab代码迁移至C++(上)
- 搭建react native mac 环境
- 你好OI,蒟蒻的第一篇博客
- 初识MVP模式
- Remove Duplicates from Sorted List