神™题........

这道题的提示......(用本苣蒻并不会的积分积出来的)并没有 没有什么卵用 ,所以你发现没有那个东西并不会 不影响你做题 ,然后你就可以推断出来你要求的是我们最晚挑到第几大的边会形成最小生成树(可以看成是在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. aioysql(异步操作MySQL)-python

    python异步IO初探 探索异步IO执之前,先说说IO的种类 阻塞IO最简单,即读写数据时,需要等待操作完成,才能继续执行.进阶的做法就是用多线程来处理需要IO的部分,缺点是开销会有些大. 非阻塞I ...

  2. scrapy框架爬取笔趣阁完整版

    继续上一篇,这一次的爬取了小说内容 pipelines.py import csv class ScrapytestPipeline(object): # 爬虫文件中提取数据的方法每yield一次it ...

  3. spfa专题

    SPFA专题 1通往奥格瑞玛的道路 在艾泽拉斯,有n个城市.编号为1,2,3,...,n. 城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量. 每 ...

  4. 介绍PHP的自动加载

    昨天面试被问到了 PHP 的自动加载机制,因为很多概念模糊啦,没回答好,今天特意来总结一下. include 和 require 是PHP中引入文件的两个基本方法,但是每个脚本的开头,都需要包含(in ...

  5. Django调试models输出的SQL语句

    django1.3在shell下,调试models变得更为简单了,不用像之前的版本,手工去调用django query,才能打印出之前的代码是执行的什么SQL语句. 1.3开始只需在settings. ...

  6. 3 web服务器:静态文件

    1.处理客户端请求数据 >>> s = "GET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive& ...

  7. Extjs报错:isField为空或不是对象

             在做Extjs开发的时候,有时候会碰到一个奇怪的问题,就是报错说"isField为空或不是对象",经过调试发现是一个数组,显示的长度是21,但是数组里面的个数只有 ...

  8. Windows Server Backup 裸机恢复

    1.打开“Windows Server Backup”选择本地备份,并在操作栏选择“一次性备份”:(在实际生产环境中可以根据自己的需求,选择一次性备份还是选择备份计划.) 2.打开“一次性备份向导”, ...

  9. ResolutionException: Cannot find candidate artifact for com.google.android.gms:play-services-ads-lite:[10.2.4]

    I had the same issue and I think it's solved now. Open AdMobDependencies.cs file, located inside of ...

  10. Android之线程安全的单例模式,Adapter注意事项之引用传值

    线程安全的单例模式单位模式一般写法如下: public static FestivalLab mInstance; private FestivalLab() { } public static Fe ...