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

题目大意:给你n个点m条边,每条边的边权都是0~1的一个随机数,让你求一个最小瓶颈生成树的期望


虽然没有看懂,但还是先膜拜 http://wjmzbmr.com/archives/zjoi-2015-day-1%E9%A2%98%E8%A7%A3/

后来又膜拜了一下std,就幻想乡了。。。

就在这时,机房的zyf大神表示这题太水了,已经Ac了,于是速去膜拜

终于大概弄懂了

首先设f(x)为x==ans的概率密度函数,定义 F(x)=∫f(x)dx

我们惊讶的发现

ans=∫x*f(x)dx=∫xd(F(x))

再根据分部积分

ans=∫xd(F(x))=xF(x)-∫F(x)dx

然后我们发现F(x)代表答案<=ans的概率,即等价于每条边有x的概率出现,原图连通的概率,这个乱搞就可以了


#include
#include
#include
#include
#include
#include
#include
#define PB push_back
#define in(x,y) (((y)>>((x)-1))&1)
using namespace std;
const int maxn=1<<10,maxm=49;
typedef long long int64;
typedef __float128 ld;
typedef vector poly;
poly operator -(const poly &a,const poly &b){
	poly res(max(a.size(),b.size()),0);
	for (int i=0;i


你可能感兴趣的:(概率,状压Dp)