神™题........

这道题的提示......(用本苣蒻并不会的积分积出来的)并没有 没有什么卵用 ,所以你发现没有那个东西并不会 不影响你做题 ,然后你就可以推断出来你要求的是我们最晚挑到第几大的边会形成最小生成树(可以看成是在Kruskal),然后我就开始YY了(一本正经)。

首先我想到了枚举边的排列这样比较好做应该可以拿到50分,然后,在此基础上我想到了用Prim式构造最小生成树然后以转移的方式求出对应的每个最晚第几的概率,转移致死....后来我去枚举树的形态,发现不会求每种形态所对应的概率......(这个故事告诉我们像期望概率和一些数学等等这些思维量极其大极其抽象而且特别容易会搞迷糊还有概念性的东西一定要想清楚再乱搞,三思啊,你都不知道你离正解差多少步)

然后我去怂题解.....

woc!为啥我没想到状压呀,10的数据范围啊。

首先进行喜闻乐见的概率期望转化,我们利用那个式子可以得出我们要求出“我们最晚挑到第几大的边会形成最小生成树”的期望,再除(m+1),之后我们发现这样还可以转化为∑第i小的边在总情景下出现的概率,也就是∑已经用了i条边不得不再用下一条边的概率,于是也就是∑已经选了i条边然而并没有联通的概率,好了我们得到了我们最终要求的东西了。

然后开始求,我们要求的是面向所有点的,然而我们发现直接求得有一些困难,所以我们就开始递推,我们可以把子集转移的思想运用到图中,就是从诱导子图中转移,(G'=(V', E'),V'被包含于V,E'={(u, v)|u, v属于V',(u, v)属于E},G'为G的诱导子图。注意:对于V',只要在G中有边,那么在G'中同样应该有边。)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ft first
#define sd second
#define mmp(a,b) (std::make_pair(a,b))
typedef std::pair<int,int> pii;
typedef long long LL;
typedef long double ld;
const int F=;
const int M=;
const int N=;
int n,m,bin[N],full,cnt[F],num[F];
LL f[F][M],g[F][M],c[M][M];
pii e[M];
int main(){
bin[]=,c[][]=;
for(int i=;i<=;++i)bin[i]=bin[i-]<<;
for(int i=;i<=;++i){
c[i][]=;
for(int j=;j<=i;++j)
c[i][j]=c[i-][j-]+c[i-][j];
}
scanf("%d%d",&n,&m),full=(<<n)-;
for(int i=;i<=m;++i)
scanf("%d%d",&e[i].ft,&e[i].sd);
for(int i=;i<=full;++i){
for(int j=;j<=m;++j)
if((bin[e[j].ft-]&i)&&(bin[e[j].sd-]&i))
++cnt[i];
for(int j=;j<n;++j)
if(i&bin[j])
++num[i];
}
for(int i=;i<=full;++i){
if((i&)==)continue;
if(num[i]==){
g[i][]=;continue;
}
int stand=i&(-i);
for(int j=i;j;j=((j-)&i))
if(j&stand)
for(int k=;k<=cnt[j];++k)
for(int l=;l<=cnt[i^j];++l)
f[i][k+l]+=g[j][k]*c[cnt[i^j]][l];
for(int j=;j<=cnt[i];++j)
g[i][j]=c[cnt[i]][j]-f[i][j];
}ld ans=.;
for(int i=;i<m;++i)
ans+=(ld)f[full][i]/(ld)c[m][i];
ans/=(m+);
printf("%lf",(double)ans);
return ;
}

【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学的更多相关文章

  1. BZOJ 3925 ZJOI2015 地震后的幻想乡 状压dp+期望

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3925 题意概述: 给出一张N点M边的最小生成树,其中每条边的长度为[0,1]的实数,求最小 ...

  2. BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)

    CLJ就是喜欢出ctsc上讲的东西,看来还是得找时间把他的那几道题做下 首先记f(x)为答案>x的概率,那么把这个东西从0到1积分就是答案了 f(x)<=>边小于x不能使图联通的概率 ...

  3. BZOJ 3925 [Zjoi2015]地震后的幻想乡 ——期望DP

    我们只需要考虑$\sum F(x)P(x)$的和, $F(x)$表示第x大边的期望,$P(x)$表示最大为x的概率. 经过一番化简得到$ans=\frac{\sum T(x-1)}{m+1}$ 所以就 ...

  4. BZOJ 3925 ZJOI2015 地震后的幻想乡

    假设我们用了边权前i小的边使得图连通,那么对答案的贡献为i/m+1 又因为期望的线性性质,我们只需要求用了i条边就可以了 不妨设g(S)(i)表示用了i条边使得点集S连通的概率 设f(S)(i)表示用 ...

  5. BZOJ 3925: [Zjoi2015] 地震后的幻想乡(概率DP)

    这里有一篇很好很强的博客%%% YouSiki大佬的博客 多理解一会就行了- 代码 #include <bits/stdc++.h> using namespace std; typede ...

  6. [ZJOI2015]地震后的幻想乡(期望+dp)

    题目描述 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任务是尽快让幻想 ...

  7. BZOJ3925: [Zjoi2015]地震后的幻想乡【概率期望+状压DP】

    Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...

  8. 【BZOJ3925】[ZJOI2015]地震后的幻想乡(动态规划)

    [BZOJ3925][ZJOI2015]地震后的幻想乡(动态规划) 题面 BZOJ 洛谷 题解 题目里面有一句提示:对于\(n\)个\([0,1]\)之间的随机变量\(x1,x2,...,xn\),第 ...

  9. BZOJ3925: [Zjoi2015]地震后的幻想乡

    Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...

随机推荐

  1. laravel框架excel 的导入导出功能

      1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. ...

  2. Python学习:for 循环 与 range()函数

    for 循环   For … in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个项目 注意:  1.else 部分是可选的.当循环中包含它时,它 ...

  3. mongodb的学习之旅一

    描述 作为一枚菜鸟级别的coder,刚接触nodejs没有多久.现在在学习微信公众号的开发,但是碰到了mongodb保存用户数据的时候,出现了DeprecationWarning: Mongoose: ...

  4. CPU计算密集型和IO密集型

    CPU计算密集型和IO密集型 第一种任务的类型是计算密集型任务,其特点是要进行大量的计算,消耗CPU资源,比如计算圆周率.对视频进行高清解码等等,全靠CPU的运算能力.这种计算密集型任务虽然也可以用多 ...

  5. 三种urllib实现网页下载,含cookie模拟登陆

    coding=UTF-8 import re import urllib.request, http.cookiejar, urllib.parse # # print('-------------- ...

  6. P1103 书本整理

    P1103 书本整理 题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由 ...

  7. win10 无法修改默认程序 默认打开方式的解决方法

    此时是2018年11月24日 win10 pro 64位 版本是1803  具体版本号是17134 情景: 我的状况是.json文件的默认打开方式被新安装的应用霸占了,然后无论是通过“右键-属性-更改 ...

  8. Python未彻底测试的项目

    第一 socket 第二 twisted 第三 tornado 第四 微信网页版本登录 第五:进程,线程,协程间关系 第六:TCP三次握手 第七:堡垒机 第八:重写django admin

  9. Linux/CentOS防CC攻击脚本

    #!/bin/sh cd /var/log/httpd/ cat access_log|awk > a cp /dev/null access_log cp /dev/null error_lo ...

  10. unity3d NavMeshAgent 寻路画线/画路径

    今天在群里看见有个小伙在问Game视图寻路时怎么画线 正好前几天写了个寻路,而且自己也不知道具体怎么在寻路时画线,所以决定帮帮他,自己也好学习一下 在百度查了一下资料,直接搜寻路画路径.寻路画线... ...