【Luogu】P3343地震后的幻想乡(对积分概率进行DP)
神难qwq。配合rqy的博客食用。
首先我们学到有一个概率函数$p(x)$表示某事件发生概率取值小于x的函数。这个函数有什么特点呢?
那就是$\int_{-∞}^{∞}p(x)dx=1$
这个是显然的
然后我们令p(x)为首次联通的时间的概率分布函数
这其实等价于生成树的最大权边等于x的概率,对不对(我虚啊,我很可能理解错的)
然后呢,就有一个期望的式子
$EX=\int tp(t)dt$
我忘了是为什么了(上午rqy才刚给我讲过,现在就忘了),我太菜了。
然后本题中,期望就是$EX=\int_{0}^{1}xp(x)dx$
$=\int_{0}^{1}p(x)( \int_{0}^{x}1ds)dx$
$=\int_{0}^{1}(\int_{s}^{1}p(x)dx)ds$
然后我们把括号里面那个玩意设成P(s)好了
所以原式被我们化成了$\int_{0}^{1}P(s)ds$
然后……emm等一会我忘了我要干嘛了qwq
……
然后我们设一个$f_{x,S}$表示集合S(S包含1节点)在x时刻前不连通,x时刻恰好联通的概率
因为在x时刻不连通,所以我们考虑它的转移
$f_{x,S}=\sum\limits_{1属于S'}^{S'包含于S}(1-f_{x,S'})(1-x)^{T(S',S-S')}$
这什么意思呢?
我们设T(A,B)为A点集和B点集之间的边数。
首先我们看见里面有一个$(1-f_{x,S'})$,这个玩意的意思是
既然我们的S集合要恰好联通,那在这之前S'作为S的一个子集是一定要联通的。而f表示的是不连通的概率,所以就是1-x呗。
而且S'和外界不要联通。
既然S和外界不要联通,那每条边在x时刻不连通的概率是(1-x),那T条边都不连通的概率就是$(1-x)^{T(S',S-S')}$
所以说$f_{x,S'}$就是这么一个玩意儿。
然后我们把x当成参,就有了$f_{S'}(x)$这么一个东西。
然后……比如说有个全集U
最后我们求的就是这么一个玩意
$\int_{0}^{1}f_{U}(x)dx$
然后下面的我就全忘了,顺着rqy的笔迹讲,不过我自己也看不懂是在干嘛qwq
我们设$dp_{S,k}=\int_{0}^{1}f_{S}(x)(1-x)^{k}dx$
$=\int_{0}^{1}(\sum\limits_{1属于S'}^{S'包含于S}(1-f_{S'}(x))(1-x)^{T(S',S-S')})(1-x)^{k}dx$
设t=T(S',S-S')
$dp_{S,k}=\sum\limits_{1属于S'}^{S'包含于S}\int_{0}^{1}(1-f_{S'}(x))(1-x)^{t+k}dx$
$=\sum\limits_{1属于S'}^{S'包含于S}\int_{0}^{1}(1-x)^{t+k}-f_{S'}(x)(1-x)^{t+k}dx$
我们发现后面那个玩意等于$dp_{S',t+k}$
就可以搞啦。至于k到底干嘛的,rqy说不表示实际意义,只是用来简化计算,我没听懂。qwq
最后求的答案就是$dp_{U,0}$
然后就是递归搞一搞DP输出。
(当然到考场上如果碰到这道题我倾向于手玩。智商-INFqwq。)
#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<cstdlib>
#define maxn 11
#define maxm 55
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} double f[<<maxn][maxm];
int q[<<maxn][<<maxn];
bool vis[<<maxn][maxm]; double dfs(int state,int t){
if(state==) return ;
if(vis[state][t]) return f[state][t];
vis[state][t]=;
double &ans=(f[state][t]=.);
for(int sta=(state-)&state;sta!=state;sta=(sta-)&state)
if(sta&){
ans+=1.0/(t+q[sta][state&(~sta)]+);
ans-=dfs(sta,t+q[sta][state&(~sta)]);
}
return ans;
} int main(){
int n=read(),m=read();
int Max=<<n;
for(int i=;i<=m;++i){
int a=read(),b=read();
a--;b--;
for(int sta=;sta<Max;++sta){
if(((sta>>a)&)==) continue;
for(int stb=;stb<Max;++stb){
if(((stb>>b)&)==) continue;
q[sta][stb]++; q[stb][sta]++;
}
}
}
printf("%.6lf",dfs(Max-,));
return ;
}
【Luogu】P3343地震后的幻想乡(对积分概率进行DP)的更多相关文章
- 洛谷 P3343 - [ZJOI2015]地震后的幻想乡(朴素状压 DP/状压 DP+微积分)
题面传送门 鸽子 tzc 竟然来补题解了,奇迹奇迹( 神仙题 %%%%%%%%%%%% 解法 1: 首先一件很明显的事情是这个最小值可以通过类似 Kruskal 求最小生成树的方法求得.我们将所有边按 ...
- 【BZOJ3925】[ZJOI2015] 地震后的幻想乡(状压期望DP)
点此看题面 大致题意: 有\(n\)个点和\(m\)条边,每条边的权值是一个\(0\sim1\)的随机实数,要你用\(n-1\)条边将图联通,问这\(n-1\)条边中边权最大值的期望最小值. 提示 这 ...
- 【BZOJ3925】地震后的幻想乡(期望概率DP,状压DP)
题意:给定一张点数不超过10的无向连通图,每条边有一个[0,1]之间的随机权值,求最小生成树上最大边的期望值 提示:对于n个[0,1]之间的随机变量x1,x2,...,xn,第k小的那个的期望值是k/ ...
- 【BZOJ3925】[ZJOI2015]地震后的幻想乡(动态规划)
[BZOJ3925][ZJOI2015]地震后的幻想乡(动态规划) 题面 BZOJ 洛谷 题解 题目里面有一句提示:对于\(n\)个\([0,1]\)之间的随机变量\(x1,x2,...,xn\),第 ...
- 「ZJOI2015」地震后的幻想乡 解题报告
「ZJOI2015」地震后的幻想乡 想了半天,打开洛谷题解一看,最高票是_rqy的,一堆密密麻麻的积分差点把我吓跑. 据说有三种解法,然而我只学会了一种最辣鸡的凡人解法. 题意:给一个无向图\(G\) ...
- [bzoj3925] [洛谷P3343] [ZJOI2015] 地震后的幻想乡
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- BZOJ3925: [Zjoi2015]地震后的幻想乡
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- [ZJOI2015]地震后的幻想乡(期望+dp)
题目描述 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任务是尽快让幻想 ...
- BZOJ3925: [Zjoi2015]地震后的幻想乡【概率期望+状压DP】
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
随机推荐
- linux+apache+mod_python+wechat_sdk搭建微信公共账号服务器
linux+apache+mod_python+wechat_sdk搭建微信公共账号服务器 转载请注明本文原作者:FignerLiu PRE 最近尝试了下使用python搭建微信公共账号服务器,实现了 ...
- Firefox火狐广告过滤插件Adblock Plus过滤规则包[中文维护小组]
如果你经常使用Firefox火狐浏览器那么一定知道Adblock Plus这款广告过滤插件,功能非常强大,但是Adblock Plus广告过滤插件自带的过滤规则并不多,而且也不太适合我们中国的网站,在 ...
- 用dfs求解八皇后问题
相信大家都已经很熟悉八皇后问题了,就是指:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法.主要思路:按行进行深度优先搜索,在该 ...
- xml文件读取
xml文件如下: <annotation> <folder>bnrc</folder> <filename>jena_000000_000019_lef ...
- Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
1. Strong Reference StrongReference 是 Java 的默认引用实现, 它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时 GC 执行后将会被回收 @Te ...
- Java中的ArrayList类和LinkedList
集合的体系: ----------| Collection 单列集合的根接口----------------| List 如果实现了List接口的集合类,具备的特点: 有序,可重复.--------- ...
- linux下jdk安装步骤
1. 登录Linux,切换到root用户 su root 获取root用户权限,当前工作目录不变(需要root密码) 或 sudo -i 不需要root密码直接切换成root(需要当前用户密码) 2. ...
- 在物理机上,用U盘安装esxi虚拟化环境
一般使用U盘安装centos镜像,可使用镜像刻录工具UltraISO,详细方法参照如下链接: https://jingyan.baidu.com/article/647f0115ee55ba7f214 ...
- LeetCode(304)Range Sum Query 2D - Immutable
题目 Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper ...
- 水题:51Nod1095-Anigram单词
1095 Anigram单词 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 Description 一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那 ...