
树链剖分
make_it_for_good
这个作者很懒,什么都没留下…
展开
-
codeforces #366 704B 704C 704D 704E
704C题意:有n个点,第i个点在位置xi,保证对于任意i#include <bits/stdc++.h>using namespace std;#define N 5100#define ll long longint n,s,e,type;int X[N],a[N],b[N],c[N],d[N];ll f[N][N];int main(){ scanf("%d%d%d",原创 2016-08-13 19:52:52 · 2050 阅读 · 2 评论 -
bzoj 2588 Spoj 10628 Count on a tree 树链剖分 主席树
主席树维护树链剖分裸题。 最后换行会PE。。。#include <bits/stdc++.h>using namespace std;#define N 110000#define M 7100000#define ll long longint n,m,tot,num,cnt,ans;int a[N],b[N],head[N],nex[N<<1],to[N<<1];int fa[N原创 2016-10-20 19:04:45 · 302 阅读 · 0 评论 -
bzoj3531 [Sdoi2014]旅行 树链剖分 线段树
先树剖,然后对于每个值开一个动态开点的线段树。#include <bits/stdc++.h>using namespace std;#define N 110000#define M 11000000#define ls l,mid,ch[now][0]#define rs mid+1,r,ch[now][1]int n,q,tot,cnt;int w[N],c[N],head[N]原创 2016-11-22 20:34:43 · 383 阅读 · 0 评论 -
bzoj 2402 陶陶的难题II 01分数规划 树链剖分 线段树维护凸包
先01分数规划一下,然后这个东西就是求(qj−kpj)+(yi−kxi)(q_j-kp_j)+(y_i-kx_i) 的最大值。 把qi−kpiq_i-kp_i 和yi−kxiy_i-kx_i分开考虑,这是一个斜率的式子,只会取上凸包的点。因此树剖把这个东西放到线段树上,线段树每个节点维护一个凸包。 然后求的时候三分就行了。 虽然这个东西看起来是log4log^4 的,不过01分数规划如果用迭代原创 2016-12-29 18:07:13 · 1011 阅读 · 0 评论