没有养成按状态逐步分析问题的思维

题目描述

在一张图内,两点$i,j$之间有$p$的概率的概率生成一条边。求该图不出现大小$\ge 4$连通块的概率。

$n \le 100,答案在实数意义下$


题目分析

首先应当想到的是枚举连通块大小为$1,2,3$的点数。

有一种想法是枚举出三种点个数之后组合算出这种情况下的方案数。但是这个方案数会非常大,不取模则不现实。

于是应当dp地来看这个问题,考虑每次加一个点后概率是如何变化的。于是只需要分类讨论一下5种情况就好了。

重点在于用dp的视角看待这个问题

 #include<bits/stdc++.h>

 int n;
double p,q,ans,f[][][]; double qmi(double a, int b)
{
double ret = ;
for (; b; b>>=,a=a*a)
if (b&) ret *= a;
return ret;
}
int main()
{
scanf("%d%lf",&n,&p);
q = (1000.0-p)/1000.0, p /= 1000.0;
f[][][] = ;
for (int ix=,i,j,k; ix<=n; ix++)
for (int jx=; jx<=ix; jx++)
for (int kx=; kx+jx<=ix; kx+=)
if ((ix-jx-kx)%==){
i = jx, j = kx, k = ix-jx-kx;
if (i) f[i][j][k] += qmi(q, ix-)*f[i-][j][k];
if (j) f[i][j][k] += qmi(q, ix-)*p*(i+1.0)*f[i+][j-][k];
if (k){
f[i][j][k] += qmi(q, ix-)*p*(j+2.0)*f[i][j+][k-]+qmi(q, ix-)*p*p*(j/+)*f[i][j+][k-]+qmi(q, ix-)*p*p*(i+2.0)*(i+1.0)/2.0*f[i+][j][k-];
}
}
for (int i=; i<=n; i++)
for (int j=; i+j<=n; j+=)
if ((n-i-j)%==)
ans += f[i][j][n-i-j];
printf("%.4lf\n",1.0-ans);
return ;
}

END

【概率dp】vijos 3747 随机图的更多相关文章

  1. [CSP-S模拟测试]:糊涂图(概率DP)

    题目传送门(内部题76) 输入格式 第一行输入三个空格隔开的整数$n,m,s$表示随机加一条边之前的糊涂图的点数,边数,以及起点的编号. 接下来$m$行,每行两个空格隔开的整数$a,b$表示从$a$到 ...

  2. poj 2096 Collecting Bugs (概率dp 天数期望)

    题目链接 题意: 一个人受雇于某公司要找出某个软件的bugs和subcomponents,这个软件一共有n个bugs和s个subcomponents,每次他都能同时随机发现1个bug和1个subcom ...

  3. 概率dp专辑

    求概率 uva11021 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  4. 【bzoj5004】开锁魔法II 组合数学+概率dp

    题目描述 有 $n$ 个箱子,每个箱子里有且仅有一把钥匙,每个箱子有且仅有一把钥匙可以将其打开.现在随机打开 $m$ 个箱子,求能够将所有箱子打开的概率. 题解 组合数学+概率dp 题目约定了每个点的 ...

  5. 【BZOJ 2878】 2878: [Noi2012]迷失游乐园 (环套树、树形概率DP)

    2878: [Noi2012]迷失游乐园 Description 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩.进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m ...

  6. 刷题总结——随机图(ssoi)

    题目: 随机图 (random.cpp/c/pas) [问题描述] BG 为了造数据,随机生成了一张�个点的无向图.他把顶点标号为1~�. 根据BG 的随机算法,对于一个点对�, �(1 ≤ � &l ...

  7. 动态规划之经典数学期望和概率DP

    起因:在一场训练赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6829 题目大意:有三个人,他们分别有\(X,Y,Z\)块钱 ...

  8. POJ 3156 - Interconnect (概率DP+hash)

    题意:给一个图,有些点之间已经连边,现在给每对点之间加边的概率是相同的,问使得整个图连通,加边条数的期望是多少. 此题可以用概率DP+并查集+hash来做. 用dp(i,j,k...)表示当前的每个联 ...

  9. CodeForces 540D--Bad Luck Island(概率DP)

    貌似竟然是我的第一道概率DP.. 手机码代码真不舒服.... /************************************************ Memory: 67248 KB Ti ...

随机推荐

  1. NET中的规范标准注释-- XML注释标签讲解

    一.摘要 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用. C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档. 这篇文章将展示如何使用这 ...

  2. codevs 1039:数的划分

    http://codevs.cn/problem/1039/ 题目描述 Description将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序).例如:n=7,k=3,下面三种划 ...

  3. kali PIN码破解

    airmon-ng start wlan0   //开启网卡airodump-ng wlan0mon    //监听模式,查找开启wps的apreaver -i wlan0mon -b [ap’s m ...

  4. mysql 触发器检测表数据添加,进而调用存储过程检测数据,进而调用存储过程添加数据

    触发器: beginDECLARE user_mes INT(64);SELECT user_id into user_mes FROM order_orderlist where id = new. ...

  5. 初识 docker

    一.安装Docker 我使用的是腾讯云上的centos 7. docker -v 查看是否已经安装有docker 如果有 systemctl stop docker 停止docker服务 查看当前版本 ...

  6. #论文阅读# Universial language model fine-tuing for text classification

    论文链接:https://aclweb.org/anthology/P18-1031 对文章内容的总结 文章研究了一些在general corous上pretrain LM,然后把得到的model t ...

  7. DecodingGenome(CodeForces-222E)【矩阵快速幂】

    题目链接:https://vjudge.net/contest/333591#problem/L 题意:用m个字符构成长度为n的串,其中存在形如“ab”(表示a后不能放置b)的条件约束,问共有多少种构 ...

  8. 【Python基础】05_Python中的while循环

    1.程序的三大流程介绍 顺序 —— 从上到下,顺序执行 分支 —— 根据条件判断,决定代码的分支 循环 —— 让特定代码执行 2.while 基本语法 while 条件(判断 计数器 是否达到 目标次 ...

  9. NAT 模式下有两个虚拟机 网段不一样,一台可上网,可ping通,一台上不了网且ping不通

    NAT 模式下有两个虚拟机 网段不一样,一台可上网,可ping通,一台上不了网且ping不通直接修改网段的话,会登录不上去,解决方法:设置>网络适配器>高级>生成mac地址重新登陆即 ...

  10. docker-get拉取镜像

    docker-get Let you get all docker images without having network problem. Install curl -kLO https://s ...