emm...
这次没有原题了
(因为我懒)
就是一道很简单的树状数组
真的很简单很简单
只用到了一点点的差分
注意注意:
只用树状数组,不用差分会t掉的
所以..
我不仅t了
还wa了
emm...
#include<cstdio> #include<iostream> using namespace std; long long a[10000005]; int n,m; int lowbit(int o) { return o & (-o); } void add(int o,int k) { while(o <= n) { a[o] += k; o += lowbit(o); } } long long sum(int o) { long long ans = 0; while(o > 0) { ans += a[o]; o -= lowbit(o); } return ans; } int main() { scanf("%d%d",&n,&m); int q,b,c; for(int i = 1;i <= m;i++) { scanf("%d",&q); if(q == 0) { scanf("%d%d",&b,&c); add(b,1); add(c+1,-1); } if(q == 1) { scanf("%d",&b); printf("%lld ",sum(b)); } } return 0; }
长点心吧
已经好几次
忽略差分了
唉...脑子是个好东西...