计蒜客2018蓝桥A模拟赛(一) 蒜头君王国(概率计算)

原创 2018年04月17日 00:02:29

题目:

有一天,蒜头君当上了国王。蒜头君的王国有 n 坐城市,现在他需要在城市之间修建道路使得城市之间相互联通。

蒜头君是一个不会规划的人,他不知道哪些城市之间必须要有道路,所以对于任意两座城市之间,蒜头军会修建道路的概率为 p。

请你计算一下最后修建出来的道路使得 n 坐城市都联通的概率。
1 <= n <= 20

分析:

F(n) 表示 n 个点联通的概率,G(n) 表示 n 个点不联通的概率。

考虑第 n 个点和之前已有的 n1 个点中的 k1 个点有边,那么选出这 k1 个点组合为 Ck1n1 。这 k 个点联通的概率为 F(k)Ck1n1 。还剩 nk 个点,这 nk 个点和 k 个点不再连边,概率为 (1p)k(nk)

所以 G(n)=Ck1n1F(k)(1p)k(nk)

代码:

#include <bits/stdc++.h>
using namespace std;
#define ms(a,b) memset(a,b,sizeof(a))
#define lson rt*2,l,(l+r)/2
#define rson rt*2+1,(l+r)/2+1,r
typedef unsigned long long ull;
typedef long long ll;
const double EPS = 1e-8;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int MAXN = 25;
double ans[MAXN],p;
int n;

ll C(int n, int m) {
    ll ret = 1;
    for (int i = m + 1; i <= n; i++) {
        ret *= i;
    }
    for (int i = 1; i <= n-m; i++) {
        ret /= i;
    }
    return ret;
}

double Pow(double x, int m) {
    double ret = 1.0;
    while (m) {
        if (m & 1) {
            ret = ret * x;
        }
        x = x * x;
        m >>= 1;
    }
    return ret;
}

int main() {
    ios::sync_with_stdio(false);
    cin >> n >> p;
    ans[1] = 1.0;
    ans[2] = p;
    for (int i = 3; i <= n; i++) {
        ans[i] = 1.0;
        for (int k = 1; k <= i - 1; k++) {
            ans[i] -= C(i - 1, k - 1) * ans[k] * Pow(1.0 - p, k * (i - k));
        }
    }
    cout << fixed << setprecision(7) << ans[n] << endl;
    return 0;
}

2018 蓝桥杯省赛 A 组模拟赛 蒜头君下棋

题目链接:点击打开链接 题意:一个n*M的棋盘上让你放马,马和马之间不能攻击。问能放多少匹马。 题解:最开始是以为是一道搜索题。然后一看数据范围。瞬间懵逼。发现这道题,是个规律题。而且规律错综复杂...
  • PK__PK
  • PK__PK
  • 2018-03-27 09:49:14
  • 121

计蒜客——2018蓝桥杯模拟赛(一)之天上的星星

在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。现在,蒜头君问自己 qq...
  • qq_40788630
  • qq_40788630
  • 2018-02-20 20:59:35
  • 253

计蒜客2018 蓝桥杯省赛 B 组模拟赛(一)-H题封印之门

蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手。幸运的是,小岛上有一扇上古之神打造的封印之门,可以通往近卫军团,传闻至今没有人能解除封印。 封印之门上有一串文字,只包含小写字母...
  • sinat_37341950
  • sinat_37341950
  • 2018-02-02 19:58:41
  • 393

计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析(未完待续)

一、题目列表 A. 结果填空:年龄        分值: 3 B. 结果填空:开关灯    分值: 7 C. 结果填空:U型数字 分值: 9 D. 代码填空:LIS        分值: 11 E....
  • cr496352127
  • cr496352127
  • 2018-01-21 11:39:53
  • 3160

2018 蓝桥杯省赛 B 组模拟赛(五) F. 结果填空:藏宝图

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10 的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一...
  • qq_33193309
  • qq_33193309
  • 2018-03-26 18:46:35
  • 431

2018 蓝桥杯省赛 B 组模拟赛(五) F. 结果填空:藏宝图

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10 的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。 整个图只有一个地方可以出入,即是入口...
  • qq_34649947
  • qq_34649947
  • 2018-03-27 14:12:33
  • 113

2018 蓝桥杯省赛 B 组模拟赛(一) G. 数列求值(2个未知数 假设一个未知数为0)

对于一个含有 n+2个元素的数列A0, A1, ... , An,满足这样的递归公式: Ai = (Ai−1 + Ai+1) /2−Ci​   1≤i≤n        现在我们知道A0, ...
  • deepseazbw
  • deepseazbw
  • 2018-01-22 20:14:16
  • 254

计蒜客蓝桥杯模拟赛(五)总结

比赛一完,题目就看不了了只可以看到排名,题目不是很难,基本都是暴力,最后两个没做出来。。。,在这里存下代码,有些水题的代码没存 比赛地址:https://www.jisuanke.com/c...
  • riba2534
  • riba2534
  • 2017-04-01 16:40:15
  • 1529

2018年计蒜客蓝桥杯模拟赛(2018.3.25)题解(未完待续)

(题解参考:2018年蓝桥杯模拟赛第五场题解  by islands)一、题目列表1. (3')矩阵求和        给你一个n×n的矩阵,里面填充1到n×n。例如当n等于3的时候,填充的矩阵如下。...
  • cr496352127
  • cr496352127
  • 2018-03-25 23:34:08
  • 1245

计蒜客蓝桥杯模拟赛5 解方程

题目 给出方程组: ​11x+13y+17z=2471​ 13x+17y+11z=2739​​ 已知 x,y,z 均为正整数,请你计算 x,y,z相加和最小为多少思路:暴力搜索 ,最好压缩x ...
  • kiwi_berrys
  • kiwi_berrys
  • 2017-04-03 16:04:30
  • 357
收藏助手
不良信息举报
您举报文章:计蒜客2018蓝桥A模拟赛(一) 蒜头君王国(概率计算)
举报原因:
原因补充:

(最多只允许输入30个字)