概率/期望DP
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【LOJ6078】「2017 山东一轮集训 Day7」重排(二分)(概率DP)
传送门题解:首先考虑没有自环的情况。先考虑没有边权重排的情况,这个时候显然是贪心选择最小后继。然后考虑边权存在重排怎么做。设度数为ddd,显然要考虑的是d2d^2d2个后继组合(边×\times×点)被选择的情况。直接排个序,用堆维护匹配的同时算一下条件概率转移即可,精度爆炸的时候要自行退出。如果有自环,直接二分或者迭代即可。复杂度就没有哪个地方是满的。代码:#include...原创 2019-10-29 14:30:16 · 457 阅读 · 0 评论 -
2019.04.03【校内模拟】猎人杀(hunter)(高斯消元)(期望DP)
传送门解析:首先所有人编号−1-1−1,这样好处理一些。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constusing std::cout;using std::cerr;cs int mod=1e9+7,in...原创 2019-04-03 23:05:19 · 154 阅读 · 0 评论 -
【NOI2017】【BZOJ4944】【洛谷P3824】【LOJ2304】泳池(概率DP)(线性递推)
BZOJ传送门转化为小于等于K的概率减去小于等于K-1的概率。直接枚举底边长度和高度DP。发现K之后的转移是一个常系数线性递推,用多项式取模优化一下就行了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using ...原创 2019-08-10 20:59:27 · 241 阅读 · 0 评论 -
【2017集训队作业】小c的岛屿(斯特林反演)(期望)(高斯消元)
题面:有 nnn 座岛屿,初始时没有边。每座岛屿都有一个概率值 pip_ipi 和一个友好列表 AiA_iAi。小 c 站在 111 号岛屿,依次执行以下操作:设现在在岛屿 xxx,有 pxp_xpx 的概率产生一条图中不存在的随机无向边,不会产生自环。如果此时所有岛屿仍未连通,他会在当前点的友好列表中,随机选择一个,走到那座岛屿上,并把不满意度 +1+1+1,然后重复第 111 ...原创 2019-08-27 14:55:32 · 382 阅读 · 0 评论 -
【UOJ449】【集训队作业2018】喂鸽子(概率DP)
传送门题解:暂时咕咕咕。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;cs int mod=998244353;inline int add(int a,int b){a+=b-...原创 2019-09-06 22:08:22 · 236 阅读 · 0 评论 -
【校内模拟】记忆(状压DP)
题解:考场想到了正解,然后被卡高速缓存,gg一个显然的转化就是设eie_iei表示朋友选择第iii个串的时候的期望操作次数。首先考虑一个O(nl2l)O(nl2^l)O(nl2l)的暴力,对于每个串,枚举所有其他串看有多少个位置相同,则我们能够代码:#include<bits/stdc++.h>#define ll long long#define re regist...原创 2019-10-01 15:10:58 · 166 阅读 · 0 评论 -
【AGC032F】One Third(概率)(积分)
传送门题解:首先第一步转化,每一刀顺时针120度逆时针120度再切一刀。落在以第一刀为000度,[0,π3)[0,\frac{\pi}{3})[0,3π)里面染成红色,落在[π3,2π3)[\frac{\pi}{3},\frac{2\pi}{3})[3π,32π)为绿色,落在[2π3,π)[\frac{2\pi}{3},\pi)[32π,π)染成蓝色。把所有刀模π3\frac{\...原创 2019-10-04 10:27:19 · 607 阅读 · 2 评论 -
【CF1081G】Mergesort Strikes Back(期望)
传送门不知道为什么一堆写了O(n)O(n)O(n)做法的声称自己复杂度是O(nlogn)O(n\log n)O(nlogn)题解首先我们先把该分的块分了,也就是分到深度不超过kkk或者分到叶子。块内是没有办法排序的,我们知道一个长度为kkk的随机序列的期望逆序对个数为k(k−1)4\frac{k(k-1)}{4}4k(k−1)可以直接算。然后现在需要考虑两个块之间的贡献。显然我们...原创 2019-10-04 11:42:56 · 243 阅读 · 0 评论 -
【CF913F】Strongly Connected Tournament(竞赛图)(概率/期望DP)
传送门题解:设q=1−pq=1-pq=1−p,ppp的含义与题目相同。首先设gig_igi表示iii个点的竞赛图,内部还是一个SCC,期望打多少场分成一条链。设fif_ifi表示iii个点的竞赛图,内部是一个SCC,打一轮之后还是一个SCC的概率。然后是一般竞赛图DP的一个套路,设dpi,jdp_{i,j}dpi,j表示iii个点的竞赛图,本来是一个SCC,打一轮之后最低的jjj...原创 2019-10-04 15:15:19 · 331 阅读 · 0 评论 -
【校内模拟】最短路(期望DP)(分层图DP)
简要题意:nnn个点的图,(n2){n\choose 2}(2n)条边中,每条边有ppp概率出现,1−p1-p1−p概率不出现,所有边权为111。随机选择一个点,问到111的最短路的期望。题解:众所周知,边权为111的图上求最短路直接BFS即可。所以这种题的套路就是考虑分层。由于需要求111到某个点的最短路,我们拿一个点出来,然后从111开始考虑分层。最后枚举一下分到哪里BFS不下去了...原创 2019-10-09 17:25:55 · 209 阅读 · 0 评论 -
2019.02.18【校内模拟】玩具(概率DP)
传送门解析:换成人话就是说,求一颗nnn个点的随机树的树高的期望。虽然求的是期望,但是我们没有什么好的方法来dp期望,而且本来总的不同贡献不是很多,所以考虑对每一种贡献的概率进行DP。首先将根给砍掉变成森林。设dp[i][j]dp[i][j]dp[i][j]表示在有iii个点的森林中,第一棵树有jjj个节点的概率.显然有边界dp[1][1]=1,dp[i][j]=0,i&lt...原创 2019-02-18 15:52:25 · 147 阅读 · 0 评论 -
2018.11.09【UVA11021】Tribles(概率DP)(不用全概率公式)
传送门强烈谴责:对于懂全概率公式的人来说这是一道水题。然而就是这群懂全概率公式的人写着一篇篇题解与代码不符的博客。连递推数组fff的下标含义都描述的完全错误,不是思路不同的问题,因为我照着与他们完全互斥的思路推出了与他们完全相同的公式,而照着他们的思路。。。麻烦懂了全概率之后再来写题解行吗。更不用说什么"直接根据全概率公式可知"。。。连完备事件集都没有给出还全概率公式以上写题解的方式就...原创 2018-11-09 08:19:42 · 221 阅读 · 0 评论 -
2018.09.28【BZOJ3566】【洛谷P4284】【SHOI2014】概率充电器(树形DP)(概率DP)(容斥原理)
BZOJ传送门洛谷传送门解析:感觉挺新奇的DPDPDP题。思路:首先看题目,这是一棵树。再看,要求期望数。而这严格来说是求的概率,因为这道题期望就是各个点被充电的概率算术和。而我接下来要介绍一下两种概率的计算。对于互相独立的事件A,BA,BA,B,其中发生任意一件的概率为P(A∣B)=P(A)+P(B)−P(A)∗P(B)P(A|B)=P(A)+P(B)-P(A)*P(B)P(A...原创 2018-09-28 14:32:06 · 190 阅读 · 0 评论 -
2018.08.30【BZOJ3036】绿豆蛙的归宿 (概率/期望DP)(记忆化搜索)
传送门解析:解析以后再说,现在先刷题。。。代码:#include&amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar#define cs const#define st原创 2018-08-30 17:18:07 · 182 阅读 · 0 评论 -
2018.08.30【SCOI2017】D2T1 花园 (期望DP)
题目描述小 A 的花园的长和宽分别是 L,H 。小 A 喜欢在花园里做游戏。每次做游戏的时候,他都先把花园均匀分割成 L×H 个小方块,每个方块的长和宽都是 1 。然后,小 A 会从花园的西北角的小方块出发,按照一定的规则移动,在到达花园东南角的小方块时结束游戏。每次行动时,他都会移动到当前所在的小方块的东面或南面相邻的小方块上。如果小 A 当前在从北向南数第 i 块,从西向东数第 j 块小方...原创 2018-08-30 23:24:15 · 232 阅读 · 0 评论 -
2018.09.01 【BZOJ1426】收集邮票(期望DP)
传送门解析:呵呵。。。代码:#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt;using namespace std;#define ll long long#define re register#define cs const#define st static#define pc putchar#define gc getcharinl原创 2018-09-01 12:58:38 · 200 阅读 · 0 评论 -
2018.09.25【NOI1999】钉子与小球(概率DP)
传送门解析:比较简单的概率DP。思路:我们用fi,jf_{i,j}fi,j表示落到(i,j)(i,j)(i,j)这个格子上的概率。那么落到最后第mmm个格子的概率就是fn+1,m+1f_{n+1,m+1}fn+1,m+1,在最后一行还要下面的一行新建一排格子,表示球的终点。那么当前位置有钉子时,落向(i+1,j)(i+1,j)(i+1,j)和(i+1,j+1)(i+1,j+1)(...原创 2018-09-25 21:22:49 · 281 阅读 · 0 评论 -
2018.09.27【BZOJ1076】【洛谷P4273】【SCOI2008】奖励关(状压DP)(期望DP)
BZOJ传送门洛谷传送门解析:一眼看题面就是期望DP,再看数据范围就知道是状态压缩思路:一般来说是期望倒着推,概率顺着推,少数情况可以不遵守以上规则。然而这个就显然不是少数情况,我们仍然选择倒推。我们考虑什么状态能够倒着转移回来。我们枚举下一轮丢出的宝物,看在这一次能否选择,然后再考虑是否要转移。代码:#include<bits/stdc++.h>using ...原创 2018-09-27 23:46:08 · 176 阅读 · 0 评论 -
2018.09.28【BZOJ4318】OSU!(期望DP)
传送门解析:不错的期望DP入门题。思路:首先,要是没有明白期望的线性性。这道题是无法理解的。一个常识,要维护高次,我们可以将高次展开,利用低次来维护。所以我们同时维护长度的期望,长度平方的期望,长度立方的期望。注意这里可能就有人不懂了,长度平方的期望不等于长度的期望的平方。同样,长度立方的期望不等于长度的期望的立方。我们用len1i,len2i,len3ilen1_i,len2...原创 2018-09-28 08:19:02 · 266 阅读 · 0 评论 -
2018.09.28【JoyOI1952】Easy(期望DP)(滚动数组)
传送门解析:我真的不想说什么了。出题人怎么连数据范围都不给啊???虽然已经在讨论板发帖了,但是估计会被无视吧。。。思路:毒瘤出题人,你以为你不给数据范围这道题就没法做了吗?我告诉你,我可以滚动数组!然后其他的推导参考OSU。这道题就是弱化版的OSUOSUOSU啊。代码:#include<bits/stdc++.h>using namespace std;#...原创 2018-09-28 08:50:37 · 156 阅读 · 0 评论 -
2018.09.28【JoyOI1864】守卫者的挑战(期望DP)(背包问题)
传送门解析:本来这种题应该很快A掉,结果我读优打错调了半个多小时。。。思路:显然这是一个贪心的策略,那么我们就只考虑达到每个状态的概率。记为fi,j,kf_{i,j,k}fi,j,k。表示当前已经进行了iii次挑战,赢了jjj次,背包剩余容量为kkk的概率。然而这道题题目说的最不清楚的一点:拿到的碎片不一定要直接放入背包,也就是说,背包剩余容量可能为负。当然你可以排序处理一下,我选...原创 2018-09-28 10:11:21 · 180 阅读 · 0 评论 -
2018.10.17【校内模拟】发电机(树形DP)(期望)
传送门解析:很显然的O(n)O(n)O(n)DP,显然在这个节点子树以外的位置安装发电机对这棵子树是没有任何影响的,而子树中任何一个节点安装发电机都会使这棵子树的根节点通电。所以,在等概率选择的情况下,单独考虑某个节点,要使它通电,必须在子树中选择一个节点,而刚好选到它的概率就是子树大小分之一。然后这道题就做完了?你卡空间了吗?你写的是DFSDFSDFS吗?爆栈了吗?你卡常了吗?(...原创 2018-10-17 23:32:12 · 153 阅读 · 0 评论 -
2018.08.30【找不到来源】游戏 (概率DP?不,期望DP!)
题目描述Alice 和 Bob 两个人正在玩一个游戏,游戏有很多种任务,难度为 p 的任务(p是正整数),有 1/(2^p) 的概率完成并得到 2^(p-1) 分,如果完成不了,得 0 分。一开始每人都是 0 分,从 Alice 开始轮流做任务,她可以选择任意一个任务来做;而 Bob 只会做难度为 1 的任务。只要其中有一个人达到 n 分,即算作那个人胜利。求 Alice 采取最优策略的情况下...原创 2018-08-30 21:37:53 · 145 阅读 · 0 评论