摘要:
显然可以想出f[i][j]表示前i个产品加工好A机器使用j的时间,B机器最少的使用时间 但是内存不够,于是考虑i可以不用记录,然后就ac了
阅读全文
posted @ 2018-05-11 12:40
geniuschenjj
阅读(149)
推荐(0)
posted @ 2018-03-11 20:55
geniuschenjj
阅读(124)
推荐(0)
摘要:
O(n^2)dp方程:f[i]=min(f[j]+(P[i]-P[j])*x[i]-G[i]+G[j]+c[i])(0<j<i) P[i]表示p[i]的前缀和,G[i]表式p[i]*c[i]的前缀和,f[i]表示i处建仓库且i之前的所有工厂的产品都安顿的最小代价 我们可以发现该方程可以用斜率优化 斜
阅读全文
posted @ 2018-03-11 18:07
geniuschenjj
阅读(160)
推荐(0)
摘要:
显然f[i]=min(f[j]+(sum[i]-sum[j]+i-(j+1)-l)^2) sum[i]表示前缀和 但显然这样的时间复杂度无法得满分,于是我们考虑斜率优化。 为了方便书写,令sum[i]=sum[i]+i,l=l+1 方程变为f[i]=min(f[j]+(sum[i]-sum[j]-l
阅读全文
posted @ 2018-03-10 19:48
geniuschenjj
阅读(147)
推荐(0)
摘要:
树链剖分就是把树拆成一系列链,然后用数据结构对链进行维护。 树链剖分主要变量: dep[x]表示x节点的深度,size[x]表示以x为根节点的树的大小,son[x]表示x的重儿子(重儿子即x的所有儿子中size最大的儿子), fa[x]表示x的父亲,top[x]表示x所属重链的头部。 首先,dep,
阅读全文
posted @ 2018-03-09 10:53
geniuschenjj
阅读(120)
推荐(0)
摘要:
treap相对splay容易理解 对每个节点x,tr[x].rd=rand(); 然后对tr[x].rd操作,使其满足堆性质
阅读全文
posted @ 2018-03-09 10:18
geniuschenjj
阅读(114)
推荐(0)
摘要:
花了一天时间调试终于过了。网上非指针的splay太少了,学长大佬们拒绝指导,只能靠自己了。 其实splay是为了保证时间复杂度,所以每次操作进行一次splay。 splay共三种操作:zig,zig_zig,zig_zag。 设当前点为x,y=fa[x],z=fa[y] 1.zig y为root时直
阅读全文
posted @ 2018-03-09 10:12
geniuschenjj
阅读(211)
推荐(0)