正题

题目链接:https://www.luogu.com.cn/problem/P3343


题目大意

给出nnn个点的一张无向图,每条边被修复的时间是[0,1][0,1][0,1]的一个随机实数,求这张图联通期望时间。

1≤n≤10,m≤n(n−1)21\leq n\leq 10,m\leq \frac{n(n-1)}{2}1≤n≤10,m≤2n(n−1)​


解题思路

这个随机实数好像是用来吓人的(但是概率分布函数好像能搞)

假设修好了kkk条之后恰好联通了,那么期望需要的时间就是km+1\frac{k}{m+1}m+1k​

好了现在要求恰好在kkk条边修好之后联通的方案,因为每条边修好的先后顺序是完全随机的。

设fS,if_{S,i}fS,i​在生成子图SSS中修好了iii条边是没有联通的方案,gS,ig_{S,i}gS,i​则表示联通了的方案,dSd_{S}dS​表示生成子图SSS的边数。

求fS,if_{S,i}fS,i​的话和之前的[集训队作业2013]城市规划思路很向,考虑扩展出一个新的点kkk,那么我们枚举一个包含kkk的联通块T(k∈T,T⊆S)T(k\in T,T\subseteq S)T(k∈T,T⊆S),然后合并这个联通块后其他的乱选,就有方程
fS,i=∑k∈T,T⊆S∑j=0min{dT,i}gT,j×(dS−Ti−j)f_{S,i}=\sum_{k\in T,T\subseteq S}\sum_{j=0}^{min\{d_{T},i\}}g_{T,j}\times \binom{d_{S-T}}{i-j}fS,i​=k∈T,T⊆S∑​j=0∑min{dT​,i}​gT,j​×(i−jdS−T​​)
然后gS,ig_{S,i}gS,i​不需要专门的方程因为有fS,i+gS,i=(dSi)f_{S,i}+g_{S,i}=\binom{d_S}{i}fS,i​+gS,i​=(idS​​)

然后答案就是
∑i=0mim+1(fG,i(dGi)−fS,i−1(dGi−1))=1m+1∑i=0mfG,i(dGi)\sum_{i=0}^{m}\frac{i}{m+1}(\frac{f_{G,i}}{\binom{d_G}{i}}-\frac{f_{S,i-1}}{\binom{d_G}{i-1}})=\frac{1}{m+1}\sum_{i=0}^m\frac{f_{G,i}}{\binom{d_G}{i}}i=0∑m​m+1i​((idG​​)fG,i​​−(i−1dG​​)fS,i−1​​)=m+11​i=0∑m​(idG​​)fG,i​​

时间复杂度O(3nn2)O(3^nn^2)O(3nn2)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=10;
ll n,m,e[1<<N],d[1<<N],g[1<<N][N*N/2],f[1<<N][N*N/2],C[51][51];
signed main()
{scanf("%lld%lld",&n,&m);for(ll i=1;i<=m;i++){ll x,y;scanf("%lld%lld",&x,&y);x--;y--;e[(1<<x)|(1<<y)]++;}ll MS=(1<<n);for(ll s=0;s<MS;s++)for(ll t=s;t;t=(t-1)&s)d[s]+=e[t];C[0][0]=1;for(ll i=1;i<=50;i++)for(ll j=0;j<=50;j++)C[i][j]=(j?C[i-1][j-1]:0)+C[i-1][j];for(ll s=1;s<MS;s++){for(ll i=0;i<=d[s];i++){ll k=s&-s;for(ll t=(s-1)&s;t;t=(t-1)&s)if(t&k)for(ll j=0;j<=min(i,d[t]);j++)f[s][i]+=g[t][j]*C[d[s-t]][i-j];g[s][i]=C[d[s]][i]-f[s][i];}}double ans=0;for(ll k=0;k<=m;k++)ans+=(double)f[MS-1][k]/C[m][k];printf("%.6lf\n",ans/(double)(m+1));return 0;
}

P3343-[ZJOI2015]地震后的幻想乡【dp,数学期望】相关推荐

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

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

  2. 3925: [Zjoi2015]地震后的幻想乡

    3925: [Zjoi2015]地震后的幻想乡 Time Limit: 10 Sec   Memory Limit: 256 MB Submit: 615   Solved: 362 [ Submit ...

  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. [ZJOI2015] 地震后的幻想乡(状压dp + 期望)

    problem luogu-P3343 solution dp(i):dp(i):dp(i): 当恰好加入第 iii 小边时候,所有点联通的方案数. 则 ans=∑idpi(mi)im+1ans=\s ...

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

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

  6. BZOJ 3925 [Zjoi2015]地震后的幻想乡

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3925 题意:给定一个 n n点mm边的无向图,没有重边和自环,每条边的权值为 [0,1] [0 ...

  7. 聪聪和可可(记忆化dp+数学期望)

    emmmm 输入格式 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下 ...

  8. 【Luogu】P3343地震后的幻想乡(对积分概率进行DP)

    题目链接 神难qwq.配合rqy的博客食用. 首先我们学到有一个概率函数$p(x)$表示某事件发生概率取值小于x的函数.这个函数有什么特点呢? 那就是$\int_{-∞}^{∞}p(x)dx=1$ 这 ...

  9. 【ZJOI2015】醉醺醺的幻想乡 题解

    浙江神选的划时代意义的究极神仙题,感谢 qlz 神仙的无私帮助. Description 传送门 Solution 算法一 第一问很容易想到网络流解决,考虑第二问.然而,费用的计算式并不是普通的一次函 ...

最新文章

  1. Android笔记(adb命令--reboot loader)
  2. POJ 1207 The 3n + 1 problem
  3. Java B2B2C多用户商城 springcloud架构-服务容错保护(Hystrix服务降级)
  4. 二、传统数据库遇到的挑战
  5. DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介、案例应用之详细攻略
  6. html中字体响应式怎么写,css字体单位之间的区分以及字体响应式实现_html/css_WEB-ITnose...
  7. 尝试:Script Lab,开发模式之知识储备//SL02
  8. 常用正则:身份证号码验证正则表达式
  9. 点击率预测的贝叶斯平滑
  10. MySQL数据的重复处理
  11. JSK-27 三值排序【贪心】
  12. 机器学习初探:Logistic选股模型实证
  13. max如何渲染多张图片
  14. 从零开始学android:环境搭建
  15. zznu 1914 asd的甩锅计划
  16. 移动游戏机和PC已合并游戏的奇点
  17. 组合业务流程管理与区块链
  18. 谈谈数据结构的重要性
  19. linux硬盘对拷 软件,分享|10 个免费的磁盘克隆软件
  20. 聊聊SQL语句中 DDL 、DML 、DQL 、DCL 分别是什么

热门文章

  1. linux mint 用户管理,Linux Mint 新工具:将网站转变为独立的应用
  2. easyui数据请求两个url_jQuery Easyui datagrid连续发送两次请求问题
  3. lisp正负调换_坐标提取lisp程序
  4. java utf8 转换al32utf8_java与Unicode
  5. Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
  6. android工程jrr版本怎么改,ionic3 生成android 如何控制versionCode版本号
  7. mysql rpm 安装后修改路径_mysql rpm包安装后修改数据目录
  8. cass小插件集合_插件|如何精准提取CASS方格网高程点?
  9. html css 重复,CSS重复定义的问题请教_html/css_WEB-ITnose
  10. python中闭包不是立刻执行_一道神奇的Python面试题,你会吗?