2 条题解
-
1
#include<iostream> using namespace std; int n,k,b[1000005]; int bit(int x) { return x & (-x); } void ad(int w,int zhi) { while(w<=n) { b[w]+=zhi; w+=bit(w); } } int zhao(int w) { int ans=0; while(w>0) { ans+=b[w]; w-=bit(w); } return ans; } int main() { cin>>n>>k; for(int i=1;i<=k;i++) { int m,p; char a; cin>>a; if(a=='A') { cin>>m; cout<<zhao(m)<<endl; } if(a=='B') { cin>>m>>p; ad(m,p); } if(a=='C') { cin>>m>>p; ad(m,-p); } } return 0; }
-
0
太简单了 写完此题,请前往P1119 简单题[狗头]
#include<iostream> using namespace std; int h[600001],f[600001]; int x,y,n,m; int K(int num) { return num&(-num); } void Add(int num,int Increase) { int z=num; while(z<=n) { h[z]+=Increase; z+=K(z); } } int Total(int num) { int z=num,tot=0; while(z>=1) { tot+=h[z]; z-=K(z); } return tot; } int main() { int z; char thing; cin>>n>>m; for(int i=1;i<=m;i++) { scanf("%s%d",&thing,&y); if(thing=='A') cout<<Total(y)<<endl; if(thing=='B') { cin>>z; Add(y,z); } if(thing=='C') { cin>>z; Add(y,-1*z); } } }
- 1
信息
- ID
- 1118
- 时间
- 200ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 40
- 已通过
- 14
- 上传者