Bzoj4627: [BeiJing2016]回转寿司
来源:互联网 发布:单片机恒温控制系统 编辑:程序博客网 时间:2024/04/19 14:39
原题网址:http://www.lydsy.com/JudgeOnline/problem.php?id=4627
考虑先将从第一项开始的所有子串和求出来,找符合条件的
#include<bits/stdc++.h>typedef long long ll;const int N = 1e5 + 10;const ll INF = 1e18;template <typename T> void read(T &x){ x = 0; T f = 1; char c = getchar(); while (c < '0' || c > '9') {if (c == '-') f *= -1; c = getchar();} while (c >= '0' && c <= '9') {x = x * 10 + c - '0'; c = getchar();} x *= f;}int n,a[N],tr[N],pos[N];ll L,R,ans;struct rec{ll s; int num;} b[N];bool cmp(const rec &a, const rec &b){ return a.s < b.s;}void add(int x, int f){ for (; x<=n; x+=x&-x) tr[x] += f;}int qry(int x){ int ans = 0; for (; x>0; x-=x&-x) ans += tr[x]; return ans;}int main(){ read(n);read(L);read(R); for (int i=1; i<=n; i++) read(a[i]); for (int i=1; i<=n; i++) b[i] = (rec) {b[i-1].s+a[i],i}; std::sort(b+1,b+n+1,cmp); for (int i=1; i<=n; i++) pos[b[i].num] = i; b[0].s = -INF, b[n+1].s = INF; for (int i=1; i<=n; i++) add(i,1); int l,r,mid; for (int i=1; i<=n; i++){ l = 0, r = n+1; while (l<r){ mid = (l+r)/2; if (b[mid].s>=L) r = mid; else l = mid + 1; } ans -= qry(l - 1); l = 0, r = n+1; while (l<r){ mid = (l+r+1)/2; if (b[mid].s<=R) l = mid; else r = mid - 1; } ans += qry(l); add(pos[i],-1); L += a[i], R += a[i]; } 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 回转寿司(权值线段树)
- 寿司?
- URAL
- LCD驱动移植
- PHP性能
- C/C++宏定义的可变参数详细解析
- 左右滑动式轮播图
- Bzoj4627: [BeiJing2016]回转寿司
- Ubuntu 16.04 安装Google Chrome浏览器及解决flash player问题
- 机器学习实战-第二章(k-近邻算法)
- HDOJ--2550 百步穿杨
- Quartz入门Demo(一)
- 带登录CSDN刷博客
- 机器学习实战——k近邻算法(kNN)01
- Spark之配置HA
- Oracle中访问表和索引的方法