考虑kruskal的过程:对$n$条边随机排列(排序),令$k$表示前$k$条边恰好能使图联通,根据题目的提示,即$E(\frac{k}{m+1})=\frac{E(k)}{m+1}$

设$p(k)$表示选择$k$条边能使图联通(不是恰好)的方案数,则有$E(k)=\sum_{i=n-1}^{m}(\frac{p(i)}{c(m,i)}-\frac{p(i-1)}{c(m,i-1)})i$

考虑dp,设$f[S][i]$和$g[S][i]$分别表示选择$i$条边(仅考虑两点都在$S$中的边)使得子集$S$联通/不连通的方案数,由于,计算$g[S][i]$

枚举子集$S'\in S$,那么即$g[S][i]=\sum_{S',k\in S'}\sum_{j=0}^{i}c(m,i-j)\cdot f[S'][j]$(这里的$m$是指两点都在$C_{S}S'$中的边数量),同时由于$f[S][i]+g[S][i]=c(m,i)$(这里的$m$是两点都在$S$中的边数),可以算出$f[S][i]$

解释一下:强制$S'$与$C_{S}S'$不连通,同时为了去重,我们强制$S'$联通且让$k\in S'$($k$为$S$中的某个任意元素)

显然$p(i)=f[V][i]$,即可算出答案,时间复杂度通过枚举子集的技巧可以优化到$o(m^{2}\cdot 3^{n})$

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 2005
4 #define M 105
5 int n,m,x,y,tot[N];
6 long long c[M][M],g[N][M],f[N][M];
7 double ans,p[M];
8 int main(){
9 scanf("%d%d",&n,&m);
10 for(int i=1;i<=m;i++){
11 scanf("%d%d",&x,&y);
12 int p=((1<<x-1)|(1<<y-1));
13 for(int j=0;j<(1<<n);j++)tot[j]+=((p&j)==p);
14 }
15 for(int i=0;i<=m;i++)c[i][0]=c[i][i]=1;
16 for(int i=1;i<=m;i++)
17 for(int j=1;j<i;j++)c[i][j]=c[i-1][j]+c[i-1][j-1];
18 for(int i=1;i<(1<<n);i++){
19 int p=i-(i&(i-1));
20 for(int j=0;j<=tot[i];j++){
21 for(int k=i;k;k=((k-1)&i))
22 if (k&p)
23 for(int l=0;l<=tot[i^k];l++)g[i][j]+=c[tot[i^k]][l]*f[k][j-l];
24 f[i][j]=c[tot[i]][j]-g[i][j];
25 }
26 }
27 for(int i=n-1;i<=m;i++)p[i]=1.0*f[(1<<n)-1][i]/c[m][i];
28 ans=p[n-1]*(n-1);
29 for(int i=n;i<=m;i++)ans+=(p[i]-p[i-1])*i;
30 printf("%.6f",ans/(m+1));
31 }

[loj2136]地震后的幻想乡的更多相关文章

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

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

  2. 「ZJOI2015」地震后的幻想乡 解题报告

    「ZJOI2015」地震后的幻想乡 想了半天,打开洛谷题解一看,最高票是_rqy的,一堆密密麻麻的积分差点把我吓跑. 据说有三种解法,然而我只学会了一种最辣鸡的凡人解法. 题意:给一个无向图\(G\) ...

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

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

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

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

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

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

  6. [bzoj3925] [洛谷P3343] [ZJOI2015] 地震后的幻想乡

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

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

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

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

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

  9. [ZJOI2015]地震后的幻想乡

    题目传送门 SOL:不会积分的我瑟瑟发抖. 所以我选择状压DP. 我们有以下一个dp状态: f[S][i],S表示点集,i表示这个点集向外联了i条边. 那么答案就是f[(1<<n)-1][ ...

随机推荐

  1. 15-ThreadLocalRandom类剖析

    ThraedLocalRandom类是JDK7在JUC包下新增的随机数生成器,它弥补了Random类在多线程下的缺陷. Random类及其缺陷 下面看一下java.util.Random的使用方法. ...

  2. 高级爬虫面试题测试题 v1.3

    Python Web高级爬虫工程师测试题 (请本文件发送到: SpiderTestQuestion@163.com 并附带简历) 1. 用yield写一个斐波那契数列的生成器函数. 2. 放一段scr ...

  3. CF1092F Tree with Maximum Cost(dfs+dp)

    果然我已经菜到被\(div3\)的题虐哭了 qwq 首先看到这个题,一个比较显然的想法就是先从1号点开始\(dfs\)一遍,然后通过一些奇怪的方式,再\(dfs\)一遍得到其他点的贡献. 那么具体应该 ...

  4. CVPR2021提出的一些新数据集汇总

    ​  前言  在<论文创新的常见思路总结>(点击标题阅读)一文中,提到过一些新的数据集或者新方向比较容易出论文.因此纠结于选择课题方向的读者可以考虑以下几个新方向.文末附相关论文获取方式. ...

  5. SpringBoot整个Druid

      Druid简介 Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池. Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0.DBCP 等 ...

  6. 2021.3.10--vj补题

    B - Saving the City cf--1443B Bertown is a city with nn buildings in a straight line. The city's sec ...

  7. Java(22)常用API一

    1 API 1.1 API概述 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的 ...

  8. Java:并发笔记-02

    Java:并发笔记-02 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 3. 共享模型之管程-1 本章内容-1 共享问题 synchronized 线程安全分 ...

  9. BUAA2020软工作业(五)——软件案例分析

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面 ...

  10. 一套比较好用的公众号UI框架-weui

    最近工作原因 需要在pd端弄一套js类似bootstrap框架 由于使用环境是在公众号终端用的比较多! 类似上面这样的样式 所以我从微信官方开始找起 最后找到了WEUI 还别说 真的挺好用的 这是大佬 ...