codeforces 827C
来源:互联网 发布:淘宝掌中宝是什么 编辑:程序博客网 时间:2024/04/29 20:14
题目链接:
http://codeforces.com/problemset/problem/827/C
题解:
很好的树状数组的题目
代码:
#include <map>#include <cmath>#include <cstdio>#include <vector>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,sizeof(a))typedef long long ll;#define inf 0x3f3f3f3fconst int maxn = 1e5+10;int Tree[4][11][11][maxn];map<char,int> mp;void init(){ met(Tree,0); mp.clear(); mp['A']=0; mp['T']=1; mp['G']=2; mp['C']=3;}int lowbit(int k){ return k&(-k);}void add(int type,int pos,int val){ for(int i=pos;i<maxn;i+=lowbit(i)) for(int j=1;j<=10;j++) Tree[type][j][pos%j][i]+=val;}int query(int type,int len,int mod,int pos){ int ans=0; for(int i=pos;i>0;i-=lowbit(i)) { ans+=Tree[type][len][mod][i]; } return ans;}int sum(int l,int r,int type,int len,int mod){ return query(type,len,mod,r)-query(type,len,mod,l-1);}int main(){ init(); string s; cin>>s; for(int i=0;i<s.size();i++) add(mp[s[i]],i+1,1); int q; scanf("%d",&q); while(q--) { int num; scanf("%d",&num); if(num==1) { int x; char y[100]; scanf("%d%s",&x,y); add(mp[s[x-1]],x,-1); add(mp[y[0]],x,1); s[x-1]=y[0]; } else { int x,y; string ss; scanf("%d%d",&x,&y); cin>>ss; int ans=0; int len=(int)ss.size(); for(int i=0;i<len;i++) { ans+=sum(x,y,mp[ss[i]],len,(i+x)%len); } printf("%d\n",ans); } }}
阅读全文
0 0
- codeforces 827C
- codeforces 827C 树状数组
- Codeforces-340-C(c++)
- Codeforces-507-C(c++)
- CodeForces 731C C
- CodeForces-612C C
- CODEFORCES 265C CODEFORCES, 265C
- codeforces #78 div2 C
- Codeforces 117C Cycle
- CodeForces 209C
- CodeForces 156C Cipher
- codeforces 148 div2 C
- codeforces 242C
- Codeforces-234C Weather
- codeforces 106C Buns
- codeforces 158C
- Codeforces 243C
- CodeForces 13C Sequence
- (1)Python初学——类——属性
- learn python the hard way EX4
- HTML input 标签 详细 事件 描述
- React:组件的生命周期
- copy构造函数的4个应用场景
- codeforces 827C
- Hololens入门之使用Custom Vision进行图片识别
- 记一次Spring MVC 一次请求,后台却访问两次的问题的解决方案
- 文章标题
- Ajax访问Servlet跨域请求
- hive 判断表分区是否存在
- 配置本地git环境
- 2018届秋招时间表(附内推邮箱)
- Btrace使用小结