pkuwc2018题解】的更多相关文章

题解: 思路挺好想的..然而今天写代码写成傻逼了 d1t1: 首先比较暴力的就是$f[i][j]$表示i个这个点是j的概率 然后前缀和一下dp就是$n^2$的 部分分树形态随机就说明树深度是$log$的 只转移子树中有的点,复杂度$nlogn$的 正解也很好想 我们化简一下那个式子(早上的草稿纸找不到了..) 反正形如$(ai*sum[i]+bi)*pi$ 因为最多只有两个儿子,显然启发式合并或者线段树合并可以维护这个sum[i]然后复杂度是$nlogn$的 30min写完一下过了样例一交爆0…
[题解]PKUWC2018简要题解 Minimax 定义结点x的权值为: 1.若x没有子结点,那么它的权值会在输入里给出,保证这类点中每个结点的权值互不相同. 2.若x有子结点,那么它的权值有p的概率是它的子结点的权值的最大值,有1-p的概率是它的子结点的权值的最小值. 1号点权值第i小的可能性的权值是\(V_i\),它的概率为 ,求: \[ \sum i V_iD_i^2 \] \(n\le 3e5\) 先离散化一下所有叶子节点的值,然后考虑一个DP \(dp(i,j)\)表示在\(i\)点权…
Problem loj2537 Solution pkuwc2018最水的一题,要死要活调了一个多小时(1h59min) 我写这题不是因为它有多好,而是为了保持pkuwc2018的队形,与这题类似的有一个好玩得多的题 由于答案的形式和期望相去甚远,所以可以肯定这题和期望无关,而且这么复杂的式子我们最好还是把所有可能计算出来啦 可以肯定地说这题是从叶子向根合并,合并时分类讨论下取最大\((p)\)还是最小\((1-p)\),然后维护前后缀概率和即可 再瞟一眼数据,发现线段树合并可以解决,完结 Co…
Problem loj2540 题意简述:给定\(n\)个点的无向图,给定求最大独立集的近似算法:随机排列\(1\cdots n\),按照该排列顺序贪心构造最大独立集(即对每个点能加入独立集就加),求算法正确率 \(n\leq 20,m\leq \binom n2\) Solution 暴力枚举应有\(10pts\)(\(n\leq 9)\) 当前状态集合为\(S\),\(0,1,2\)分别表示没访问到.访问到且在最大独立集内.访问到且未在最大独立集内,每次枚举下一个访问的节点,复杂度\(O(n…
https://loj.ac/problem/2537 参考了本题在网上能找到的为数不多的题解. 以及我眼睛瞎没看到需要离散化,还有不开longlong见祖宗. ———————————————————————————— 思考一下不难发现,我们的操作相当于对两个数集进行合并,并且重新更新每个数被取到的期望. 权值线段树可以帮我们实现这个功能(当然是要动态开点了). 然后就思考线段树的合并操作了,orz可我不会啊. 设我们期望让左儿子的数字u成为其父亲的权值,其父亲选最大值的概率为k,u在右儿子数集…
Problem loj2538 Solution 在考场上当然要学会写暴力,考虑如果手上已经有了\(a\)张攻击牌和\(b\)张强化牌: 首先强化牌会在攻击牌之前用(废话),其次要将两种牌分别从大往小打,即排个序先(也是废话) 要尽量打强化牌,最后再打一张攻击牌(由于每张强化牌至少乘二,所以打一张强化牌一定不比多打一张攻击牌差) 由于\(n\leq 3000\),预估复杂度为\(O(n^2)\),所以应该可以枚举两种牌的数量 设两个状态,\(F[i][j]\)表示选取\(i\)张强化牌,打出\(…
Problem loj2542 题意:一棵 \(n\) 个结点的树,从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去,询问走完一个集合 \(S\)的期望时间,多组询问 \(n\leq 18,Q\leq 5000\) Solution 首先来个\(min-max\)容斥 一下是看错题时想的 然后预处理从每个点开始的到达每个点的所有集合的期望,\(O(n^22^n)\)卡常可过 若是这样,前20pts可以搞出来了:对于每次询问在线处理dp数组,利用最值容斥搞事情 30pts的部分…
Problem loj2541 题意概要:给定 \(n\) 个人的倒霉度 \(\{w_i\}\),每回合会有一个人死亡,每个人这回合死亡的概率为 自己的倒霉度/目前所有存活玩家的倒霉度之和,求第 \(1\) 个人最后一个死亡的概率 Solution 设 \(B = \sum_{i=2}^nw_i\) 要求 \(1\) 号最后一个被选中有点不好做,但是求 \(1\) 号第一个被选中还是比较好做的(\(\frac {w_1}{\sum_{i=1}^nw_i}\)) 至于这两者怎么联系起来,使用 \(…
根据题意,若一个点有子节点,则给出权值:否则可以从子节点转移得来. 若没有子节点,则直接给出权值: 若只有一个子节点,则概率情况与该子节点完全相同: 若有两个子节点,则需要从两个子节点中进行转移. 如何转移?显然,若权值 $i$ 在左子树,要取到它,需要在 $p_i$ 的概率中左子树较大,在 $(1-p_i)$ 的概率中左子树较小,右子树同理.因为当权值 $i$ 在左子树时右子树取到它的概率为 $0$ ,因此可以直接将两个子树的转移式相加合并,没有影响.即: 设节点 $x$ 取到权值 $i$ 的…
[LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). 那么怎么求解每个集合的\(min\)呢. 显然以起点为根节点,如果点集中一个点在另外一个点的子树内,显然不需要考虑,索性丢掉.考虑剩下的点,把他们的子树丢掉(要访问子树肯定要访问到某个点),那么剩下的点直接扣下来做一个高斯消元就可以求出到达每个点的期望,那么\(min\)就求出来. 设\(f[S]\…