刷题总结——随机图(ssoi)
题目:
随机图
(random.cpp/c/pas)
【问题描述】
BG 为了造数据,随机生成了一张�个点的无向图。他把顶点标号为1~�。
根据BG 的随机算法,对于一个点对�, �(1 ≤ � < � ≤ �),它有�‰(千分之�)的概率成为
这张图中的一条边� − �。不同的边出现的概率是相互独立的。
为了保证数据的强度,BG要求生成的图中至少要有一个大于等于 4的连通块。于是他
想知道,在不做任何改进的情况下,根据他的算法造出强数据的概率是多少。
【输入】
输入文件名为random.in。
共一行两个整数�, �,中间用一个空格隔开,表示图的点数和边在图上的概率。
【输出】
输出文件名为random.out。
输出共一行一个实数,表示所求的概率。结果保留4 位小数。 【输入输出样例1】
random.in random.out
3 123
0.0000
【输入输出样例2】
random.in random.out
4 500
0.5938
题解:�
概率DP方程
�[�+1][�−1][�+1],乘上系�·(1−�)�
代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int N=;
double dp[N][N][N],p,ans=;
double c[N][];
int n;
inline void pre()
{
for(int i=;i<=n;i++) c[i][]=i;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
c[i][j]=c[i-][j]+c[i-][j-];
}
int main()
{
scanf("%d",&n);
cin>>p;
p=p/;
pre();
dp[][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=n/;j++)
for(int k=;k<=n/;k++)
{
int l=(i-*j-*k);
dp[i+][j][k]+=dp[i][j][k]*pow(-p,i);
dp[i+][j+][k]+=dp[i][j][k]*pow(-p,i-)*l*p;
dp[i+][j][k+]+=dp[i][j][k]*c[l][]*pow(-p,i-)*p*p;
dp[i+][j-][k+]+=dp[i][j][k]*pow(-p,i-)**j*p;
dp[i+][j-][k+]+=dp[i][j][k]*pow(-p,i-)*j*p*p;
}
for(int j=;j<=n/;j++)
for(int k=;k<=n/;k++)
ans-=dp[n][j][k];
printf("%0.4lf",ans);
return ;
}
� ≤ 1,000。
刷题总结——随机图(ssoi)的更多相关文章
- 刷题总结——路径(ssoi)
题目: 题目背景 CF 57D 题目描述 小美今天和她的好朋友在玩捉迷藏游戏.地图可以抽象成一张 n*m 的图,地图上有一些障碍.但这些障碍有一些性质:1:每个障碍周围 8 个格子是没有障碍的.2:每 ...
- 刷题总结——road(ssoi)
题目: 题目背景 SOURCE:NOIP2016-RZZ-1 题目描述 有 N 个城市,这些城市通过 M 条无向边互相连通,每条边有一个权值 Ci ,表示这条边的长度为 2^(Ci) ,没有两条边的长 ...
- 刷题总结——table(ssoi)
题目: 题目背景 SOURCE:NOIP2016-RZZ-2 T2 题目描述 给定一个 n×m 的矩阵,行列均从 1 开始标号. 一个矩阵被认为是稳定的,当且仅当对于任意的 2≤i≤n,第 i 行的数 ...
- 刷题总结——shortest(ssoi)
题目: 题目背景 SOURCE:NOIP2015-SHY-3 题目描述 给定一张 n 个点的有向带权完全图,和一个数组 a[] ,请按顺序删除数组中的点,请求出在删除点 a[i] 以前,所有未删除点对 ...
- 刷题总结——鸭舌(ssoi)
题目: 题目背景 CF 77C 题目描述 小美喜欢吃鸭舌.有一个 n 个点的树,每个节点 i ,第 i 个点上有 ai 个鸭舌.小美一开始处于 x 号点.每次小美可以选择一个与现在的点有边的点而且那个 ...
- 刷题总结——电影(ssoi)
题目: 题目背景 SOURCE:NOIP2014-SXYZ T2 题目描述 小美去看电影,发现这个电影票很神奇,有一个编号 (x,y) 表示为第 x 排第 y 位. 小美是个聪明的女孩子,她有自己的一 ...
- LeetCode刷题专栏第一篇--思维导图&时间安排
昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...
- LeetCode刷题总结-排序、并查集和图篇
本文介绍LeetCode上有关排序.并查集和图的算法题,推荐刷题总数为15道.具体考点分析如下图: 一.排序 1.数组问题 题号:164. 最大间距,难度困难 题号:324. 摆动排序 II,难度中等 ...
- C#LeetCode刷题-图
图篇 # 题名 刷题 通过率 难度 133 克隆图 18.7% 中等 207 课程表 40.0% 中等 210 课程表 II 40.0% 中等 310 最小高度树 29.5% 中等 3 ...
随机推荐
- C++拾遗(二)——初窥标准库类型
本篇博文的开始,先介绍一道书上看到的智力题:有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸.有一台称重精准的天平,只是用一次天平的情况下如何找出比较重的那瓶药丸? 好了,直 ...
- Nginx常用命令介绍
#安装nginx准备工作yum install gcyum -y install pcre-develyum install -y zlib-devel #编译安装./configuremake &a ...
- 洛谷 P1309 瑞士轮
题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分 ...
- docker配置国内镜像
1. 配置 root@ros-OptiPlex-3050:~# cat /etc/docker/daemon.json { "graph": "/mnt/docke ...
- ABAP Netweaver, SAP Cloud Platform和Kubernetes的用户区分
ABAP Dialog: Individual, interactive system access. System: Background processing and communication ...
- 洛谷五月月赛【LGR-047】划水记
虽然月赛有些爆炸,但我永远资瓷洛谷! 因为去接水,所以迟到了十几分钟,然后洛谷首页就打不开了-- 通过洛谷题库间接打开了比赛,看了看\(TA\),WTF?博弈论?再仔细读了读题,嗯,判断奇偶性,不过要 ...
- PAT 乙级 1037
题目 题目地址:PAT 乙级 1037 题解 本题有两个版本的代码,初版因为种种问题写得比较繁琐,具体的分析见后文,更新的之后的版本相对来说要好很多,代码也比较清晰简洁. 初版的代码主要有如下几方面的 ...
- 【java】抽象类继承关系
抽象类: 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充. 一个类不能同时被 abstract 和 final 修饰.如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将 ...
- 什么是php?php的优缺点有哪些?与其它编程语言的优缺点?
身为一个PHP开发者,有必要了解一下PHP的缺点,知道每种语言的优点和缺点,才能知道某种语言在什么场景下适合使用,在什么场景下不适合使用. 这个问题我曾经面试的时候遇到过,我之前没总结过,第一问大部分 ...
- python--第一类对象,函数名,变量名
一 . 第一类对象 函数对象可以像变量一样进行赋值 , 还可以作为列表的元素进行使用 可以作为返回值返回 , 可以作为参数进行传递 def func(): def people(): print('金 ...