zoukankan      html  css  js  c++  java
  • P3802 小魔女帕琪

    (color{#000088} {东方众不请自来。。。})

    题意:

    洛谷链接

    帕琪有七种元素,第 (i) 个元素有 (a_i) 个,帕琪将所有元素排成一排,若有任意连续的 (7) 个元素互不相同(就是啥元素都有),就能释放魔法把蕾米淦翻。现在给你每个元素数量,问随机将元素排开期望能淦蕾米多少次。

    注意是任意 (7) 个连续的,同一个元素在前 (7) 个中能组成,在后 (7) 个中也能组成,就算释放两次。如:(12345671),即可释放两次。


    纯数学题,想清题解后代码很好写。

    总共期望释放几次 (=sum) 每个位置期望释放几次,当然每个位置只能释放一次。。。就是每个位置可释放的概率。

    考虑到由于上一次是否释放对下一次没有任何影响,所以每个位置释放的概率都是独立的。

    再思考会发现每个位置其实概率是一样的,因为都是在整个序列中连续的 (7) 个数,只是初始位置和结束位置不同而已。如果将这连续的 (7) 个数绑在一起,其他的元素全部散开,可以想到无论这 (7) 个放在哪里,概率都是相同的。

    那么我们只需计算:长度为 (n) 的序列,选定的 (7) 个数互不相同的概率,答案乘上 (n-6) (有 (n-6) 个可能释放的位置)。

    但这 (7) 个数即使绑在一起他们之间的位置也不确定,既然这 (7) 个数互不相同,我们可以当做排列处理,将排好顺序的情况数乘上 (7!) ,就是位置不确定的情况。

    现在问题变成了小学奥数。。。: (n) 个数中选出 (7) 个数,第一个数是 (1),第二个数是 (2),第三个数是 (3) 。。。的情况数。即 (frac {a_1}{n}*frac {a_2}{n-1}*frac {a_3}{n-2}*frac {a_4}{n-3}*frac {a_5}{n-4}*frac {a_6}{n-5}*frac {a_7}{n-6})

    综上:(Ans = (n-6)*(7!)*frac {a_1}{n}*frac {a_2}{n-1}*frac {a_3}{n-2}*frac {a_4}{n-3}*frac {a_5}{n-4}*frac {a_6}{n-5}*frac {a_7}{n-6})

    (Ans=5040*frac {a_1}{n}*frac {a_2}{n-1}*frac {a_3}{n-2}*frac {a_4}{n-3}*frac {a_5}{n-4}*frac {a_6}{n-5}*a_7)

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    #define QWQ cout<<"QwQ"<<endl;
    #define ll long long
    #include <vector>
    #include <queue>
    #include <stack>
    #include <map>
    using namespace std;
    const int N=201010;
    const int qwq=303030;
    const int inf=0x3f3f3f3f;
    
    double a[2333],tot;
    double ans = 5040.0;
    
    int main() {
    	for(int i=1;i<=7;i++) scanf("%lf",&a[i]), tot += a[i];
    	for(int i=1;i<=7;i++) if(!a[i]) { cout<<"0.000"; return 0; }
    	for(int i=1;i<=7;i++) ans = ans * a[i] / (tot-i+1);
    	ans *= tot-6;
    	printf("%.3lf",ans);
    	return 0;
    }
    
    
    
  • 相关阅读:
    MySql数据库的导入_命令工具
    Java_JVM学习笔记(深入理解Java虚拟机)___重点
    HTML——<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    HTML——表格table标签,tr或者td
    Java _Map接口的使用(转载)
    Java_Web _Servlet生命周期实验
    Java_Web___字符串转码String.getBytes()和new String()——(转)
    Java_Iterator-------迭代器配合Listarray使用,具有更多的功能(转载)
    Java_LIST使用方法和四种遍历arrayList方法
    Java_web 乱码和一些地址输错的问题(原创)
  • 原文地址:https://www.cnblogs.com/clever-sheep/p/12811549.html
Copyright © 2011-2022 走看看