CLJ就是喜欢出ctsc上讲的东西,看来还是得找时间把他的那几道题做下

首先记f(x)为答案>x的概率,那么把这个东西从0到1积分就是答案了

f(x)<=>边小于x不能使图联通的概率

这个有点难求,考虑求使图联通的概率

记f(s)为集合s联通的概率,那么f(s)=1-sigma(f(s')*(1-x)^cnt) (s'属于s且s'一定包含某点k,cnt为链接s'与Cs s'的边数)

可以发现f(s)是个多项式,就可以积分了

由于还没用上64位评测系统,double还是不能过,只好用__float128,比较慢而已

CODE:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
typedef vector<__float128> ploy;
ploy operator + (ploy x,ploy y){
ploy ans(max(x.size(),y.size()),);
for (int i=;i<ans.size();i++) {
if (i<x.size()) ans[i]+=x[i];
if (i<y.size()) ans[i]+=y[i];
}
return ans;
}
ploy operator - (ploy x,ploy y) {
ploy ans(max(x.size(),y.size()),);
for (int i=;i<ans.size();i++) {
if (i<x.size()) ans[i]+=x[i];
if (i<y.size()) ans[i]-=y[i];
}
return ans;
}
ploy operator * (ploy x,ploy y) {
ploy ans(x.size()+y.size()-,);
for (int i=;i<x.size();i++)
for (int j=;j<y.size();j++)
ans[i+j]+=x[i]*y[j];
return ans;
}
bool b[];
ploy f[],quick[];
int n,m;
struct edges{int x,y;}e[];
ploy ONE(,);
inline void print(ploy x){
printf("%d\n",x.size());
for (int i=;i<x.size();i++) printf("%lf ",double(x[i]));
printf("\n");
}
void dp(int x){
if (b[x]) return ;
b[x]=;
ploy tmp(,);
for (int i=;i<(<<n);i++) {
if (!(i&)) continue;
if ((i&x)!=i) continue;
if (i==x) continue;
int j=x^i;
int cnt=;
for (int k=;k<=m*;k++)
if (i&(<<e[k].x)&&j&(<<e[k].y)) cnt++;
dp(i);
tmp=tmp+f[i]*quick[cnt];
}
f[x]=ONE-tmp;
}
__float128 cal(ploy x) {
__float128 ans=;
for (int i=;i<x.size();i++) ans+=x[i]*1.0/(i+);
return ans;
}
int main() {
scanf("%d%d",&n,&m);
quick[]=ONE;
quick[]=ploy(,);
quick[][]=;quick[][]=-;
for (int i=;i<=m;i++) quick[i]=quick[i-]*quick[];
for (int i=;i<=m;i++) {
int x,y;
scanf("%d%d",&x,&y);
x--,y--;
e[i*-]=(edges){x,y};
e[i*]=(edges){y,x};
}
b[]=;f[]=ONE;
dp((<<n)-);
ploy ans=ONE-f[(<<n)-];
printf("%.6lf\n",double(cal(ans)));
return ;
}

BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 【洛谷3343_BZOJ3925】[ZJOI2015]地震后的幻想乡(状压 DP_期望)

    题目: 洛谷 3343 BZOJ 3925 分析: 谁给我说这是个期望概率神题的,明明没太大关系好吧 「提示」里那个结论哪天想起来再问 Jumpmelon 怎么证. 首先,由于开始修路前 \(e_i\ ...

随机推荐

  1. c#中反射

    在.Net 中,程序集(Assembly)中保存了元数据(MetaData)信息,因此就可以通过分析元数据来获取程序集中的内容,比如类,方法,属性等,这大大方便了在运行时去动态创建实例. MSDN解释 ...

  2. jmeter+ant+jenkins+mac 构建后自动发送邮件

    1.安装Email Extension Plugin插件 2.进入系统管理-系统设置,按如下进行设置: ------------------------------------------------ ...

  3. Java动态数组

    其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList. ...

  4. EALayout 实践

    步骤: 1. 导入framework 1.0. 下载网址 1.1. 修改Build Setting -> other linker flags,添加 “-ObjC”(连接实现文件)和" ...

  5. IM 融云 之 列表及封装

    // // ChatListIMViewController.m // testRongCloudIM // // Created by WoodGao on 16/1/8. // Copyright ...

  6. UVa 10718 - Bit Mask

    题目大意:给一数N,在区间[L, U]上找到一个数M使得M| N的值最大,如果有M有多个可能值,取最小的那个值. 从最高位开始逐位判断,如果N的该位为0,为使M | N的值最大,M的该位应考虑置为1, ...

  7. 9.TCP:传输控制协议

    1.TCP功能     TCP向应用层提供面向连接的.可靠的字节流服务.TCP可以认为是一个没有选择确认或否认的滑动窗口协议.     TCP将用户数据打包构成报文段:它发送数据后启动一个定时器:另一 ...

  8. iOS 错误 之 http请求

     Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is ins ...

  9. 抓包分析YY音频

    YY的音频数据传输是P2P协议,音频的编码为AAC,下面抓去的音频编码的信息和频谱信息. 音频编码为AAC,采样为44K,码率24kb/s.音频编码在24kb/s码率能达到15K的音质.值得大家学习啊 ...

  10. JavaScript 轻松创建级联函数

    级联函数是什么? 在一行代码上,调用一个接一个的方法.这种技术在 JQuery 或者其他 JavaScript 库中是非常常见的. 代码如下: $('#myDiv').fadeOut().html(' ...