BZOJ4627 [BeiJing2016]回转寿司
来源:互联网 发布:js 多维数组转json 编辑:程序博客网 时间:2024/06/02 13:45
求前缀和,相当于对于每个i求1<=j<i,L<=s[i]-s[j]<=R的个数然后加起来,用权值线段树搞就好了
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>#include<iomanip>#include<ctime>#include<vector>#include<stack>#include<set>#include<bitset>#include<map>#include<queue>using namespace std;#define MAXN 100010#define MAXM 8000010#define MOD 1000000007#define INF 10000000000ll#define eps 1e-8#define ll long longint n,L,R;int siz[MAXM],son[MAXM][2];int tot;int rt;void change(int &x,ll y,ll z,ll p){if(!x){x=++tot;}siz[x]++;if(y==z){return ;}ll mid=y+z>>1;if(p<=mid){change(son[x][0],y,mid,p);}else if(p>mid){change(son[x][1],mid+1,z,p);}}int ask(int x,ll y,ll z,ll l,ll r){if(!x){return 0;}if(y==l&&z==r){return siz[x];}ll mid=y+z>>1;if(r<=mid){return ask(son[x][0],y,mid,l,r);}else if(l>mid){return ask(son[x][1],mid+1,z,l,r);}else{return ask(son[x][0],y,mid,l,mid)+ask(son[x][1],mid+1,z,mid+1,r);}}ll ans;int main(){int i,x;ll s=0;scanf("%d%d%d",&n,&L,&R);for(i=1;i<=n;i++){scanf("%d",&x);change(rt,-INF,INF,s);s+=x;ans+=ask(rt,-INF,INF,max(-INF,s-R),min(INF,s-L));}printf("%lld\n",ans);return 0;}/**/
0 0
- BZOJ4627 [BeiJing2016]回转寿司
- Bzoj4627: [BeiJing2016]回转寿司
- Bzoj4627:BeiJing2016-回转寿司
- [BZOJ4627][BeiJing2016]回转寿司 cdq分治
- 4627: [BeiJing2016]回转寿司
- 【BZOJ】4627 [BeiJing2016]回转寿司
- BZOJ4627 回转寿司(值域线段树)
- bzoj 4627: [BeiJing2016]回转寿司 线段树
- BZOJ 4627: [BeiJing2016]回转寿司 cdq
- BZOJ 4627: [BeiJing2016]回转寿司【前缀和,值域线段树
- bzoj-4627 [BeiJing2016]回转寿司 hash+权值线段树
- 回转寿司
- 【NOI2017模拟6.23】回转寿司
- BZOJ 4627回转寿司(值域线段树)
- 【线段树】【CDQ分治】回转寿司
- bzoj4627
- bzoj 4627 回转寿司(权值线段树)
- 寿司?
- nginx + tomcat 导致session丢失的问题
- MANIFEST.MF错误
- 数据结构也不是那么没意思之前序二叉树+二叉树转伪双向循环链表
- 事件传递机制
- vmware workstation问题:无法将网络更改为桥接状态:没有未桥接的主机网络适配器
- BZOJ4627 [BeiJing2016]回转寿司
- 《数据结构》复习之稀疏矩阵(矩阵转置)
- Ajax —— 一言不合就谈Ajax
- mha
- Features of Industrial SIROCCO FAN
- Linux环境下安装Java
- Google Awareness(情景感知)
- #金波猝死#伊文又名肥刀,真名金波,一个媒体人,十年天涯路
- 图算法—Problem F