摘要:
题意 给你一棵$n$ 个点的树,每个点有权值 $a_i$ $a$ 为一个排列 求 $$\frac{1}{n(n−1)}\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(a_ia_j)dist_{i,j}$$ $n≤200000$ 答案对 $10^9+7$ 取模 Sol 莫比 阅读全文
posted @ 2018-05-30 22:38
Cyhlnj
阅读(145)
评论(0)
推荐(0)
摘要:
题面 "传送门" 虚树 把跟询问有关的点拿出来建树,为了方便树$DP$ 在$LCA$处要合并答案,那么把这些点的$LCA$也拿出来 做法:把点按$dfs$序排列,然后求出相邻两个点的$LCA$,把这些点建一个虚树,维护一个栈就好了 Sol 虚树+树$DP$ cpp include define IL 阅读全文
posted @ 2018-05-30 22:30
Cyhlnj
阅读(154)
评论(0)
推荐(0)
摘要:
题面 "传送门" Sol 套路:找出重心,如果有两个就新建一个点 然后把这棵树hash一下 设$f[i][j]$表示第一颗树到$i$第二棵树到$j$,子树$i,j$同构的付出的最小代价 转移:每次把这一层hash值相同的点做一边二分图权匹配(KM/费用流)就好了 ~~一遍AC~~ cpp inclu 阅读全文
posted @ 2018-05-30 22:26
Cyhlnj
阅读(145)
评论(0)
推荐(0)
摘要:
题面 "传送门" Sol 线性规划费用流解法用与求解未知数为非负数的问题 这道题可以列出一堆形如 $x[i]+x[j]+x[k]+... =a[p]$ 的不等式 我们强行给每个式子减去一个东西,使他变成这样 $x[i]+x[j]+x[k]+... y[p]==a[p]$ 然后相邻两个式子差分一下 把 阅读全文
posted @ 2018-05-30 22:20
Cyhlnj
阅读(278)
评论(0)
推荐(0)
摘要:
题面 "传送门" Sol 消圈定理:如果一个费用流网络的残量网络有负环,那么这个费用流不优 于是这个题就可以建出残量网络,然后分数规划跑负环了 阅读全文
posted @ 2018-05-30 22:09
Cyhlnj
阅读(166)
评论(0)
推荐(0)
摘要:
题面 "传送门" 分数规划 分数规划有什么用? 可以把带分数的最优性求解式化成不带除发的运算 假设求max{$\frac{a}{b},b 0$} 二分一个权值$k$ 令$\frac{a}{b}\le k$那么$a k b\le 0$ 如果得出来$a k b$的最大值大于$0$,那么$k$可以变大 否 阅读全文
posted @ 2018-05-30 22:05
Cyhlnj
阅读(158)
评论(0)
推荐(0)
摘要:
题面 自己去$LOJ$上找 Sol 直接排序然后$KDTree$查询 然后发现$TLE$了 然后把点旋转一下,就过了。。 cpp include define IL inline define RG register define Fill(a, b) memset(a, b, sizeof(a)) 阅读全文
posted @ 2018-05-30 21:59
Cyhlnj
阅读(439)
评论(0)
推荐(0)
摘要:
题面 "Bzoj" Sol 维护一个小根堆,初始里面放$2 k$个元素(因为点对可能算两遍) 每个点$KDTree$暴力查询是否有与这个点距离大于堆顶的,替换堆顶就好了 include define IL inline define RG register define Fill(a, b) mem 阅读全文
posted @ 2018-05-30 21:55
Cyhlnj
阅读(118)
评论(0)
推荐(0)
摘要:
题面 "传送门" KDTree 大概就是一个分割$k$维空间的数据结构,二叉树 建立:每层选取一维为关键字,把中间的点拿出来,递归左右,有个$STL$函数nth_element可以用一下 维护:维护当前这个点的子树的每一维的最大值和最小值,相当于维护了个高维矩形 查询:直接遍历一棵树是$O(n)$的 阅读全文
posted @ 2018-05-30 21:50
Cyhlnj
阅读(171)
评论(0)
推荐(0)

浙公网安备 33010602011771号