摘要: 建图((x,y,c,l)表示x到y,费用c,流量l) (S,1,0,K) (i,i+1,0,K) 这个边上的流量,表示i还可以被覆盖的次数 (N,T,0,K) (i,j,w,1)对于权值为w的区间[i,j] 然后跑最大费用最大流 因为没有负权值,所以肯定尽量跑满 阅读全文
posted @ 2018-12-01 19:37 Ressed 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 看到数据范围,考虑网络流..但考的时候完全不知道怎么建图 考虑流量表示选的点个数,费用表示选点的收益,跑最大费用最大流 那么我用一个点x表示某树中的询问点x,刨去它子孙询问点的子树后的子树 对于树1,连边S->x,流量为x的限定数-孩子询问的限定数,费用为0 对于树2,连边x->T,流量为x的限定数 阅读全文
posted @ 2018-12-01 19:30 Ressed 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 首先整体二分,问题变成是否存在经过一个点的满足条件的路径 那么我对于每个路径(a,b,lca),在树状数组的dfn[a]++,dfn[b]++,dfn[lca]--,dfn[fa[lca]--] 然后直接查那个点的子树和就行了 阅读全文
posted @ 2018-12-01 19:01 Ressed 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 设f[i][j]表示在第i个村庄建第j个基站的花费 那么有$f[i][j]=min\{f[k][j-1]+w[k,i]\}$,其中w[k,i]表示在k,i建基站,k,i中间的不能被满足的村庄的赔偿金之和 如果把每个村庄能被满足的区间处理出来,记做$[l_i,r_i]$,那么i,j不能满足的村庄,就是 阅读全文
posted @ 2018-12-01 18:56 Ressed 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 按照美味值从大到小排序,对于每个询问,我想二分找到一个前缀来满足条件 那么以单价为下标建主席树,维护区间的最大体积和 以及满足这个最大体积需要的价钱 然后二分答案,再在主席树上二分,找到恰好满足的那个位置(肯定是单价越小越好) 复杂度$O(nlog^2n)$ 阅读全文
posted @ 2018-12-01 18:46 Ressed 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 考虑整体二分,问题就变成了每个(水果)路径有多少个满足条件(权值)的(盘子)子路径 考虑一个盘子(a,b)表示两端点(不妨设dfn[a]<dfn[b]),那么他能接到的水果(u,v)一定满足(不妨设dfn[u]<dfn[v]): 1.如果a是b的祖先,则u在(a的在(b,a)链上的孩子)这个子树外, 阅读全文
posted @ 2018-12-01 18:42 Ressed 阅读(157) 评论(0) 推荐(0) 编辑