• 天上掉馅饼


    题目描述
    小 G 进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼。今天,天上
    会随机掉下 k 个馅饼。
    每次天上掉下馅饼,小 G 可以选择吃或者不吃(必须在下一个馅饼掉下来之前
    作出选择,并且现在决定不吃的话以后也不能吃)。
    馅饼有 n 种不同的馅,根据物理定律,天上掉下这 n 种馅饼的概率相同且相互
    独立。然而,每一种馅饼 i 都有一个前提馅饼集合 S i 。只有当 S i 中的馅饼都吃过
    之后,才能吃第 i 种馅饼。比如说,韭菜馅馅饼的 S 中有白菜猪肉馅饼和鲜虾馅饼,
    那么小 G 只有在吃过白菜猪肉馅饼和鲜虾馅饼之后,才能吃韭菜馅的馅饼。
    同时,每个馅饼还有一个美味值 P i 。今天一天小 G 的幸福度,等于小 G 吃到
    的所有馅饼的美味值之和。注意,P i 可能是负数。
    现在考虑,在采用最优策略的前提下,小 G 这一天期望的幸福度是多少?

    输入格式
    第一行两个正整数 k 和 n,表示馅饼的数量和种类。
    以下 n 行,每行若干个数,描述一种馅饼。其中第一个数代表美味值,随后的
    整数表示该馅饼的前提馅饼,以 0 结尾

    输出格式
    输出一个实数,保留 6 位小数,即在最优策略下期望的幸福度。
    样例输入 1
    1 2
    1 0
    2 0
    样例输出 1
    1.500000
    7
    数据范围
    对于 20% 的数据,所有的馅饼都没有“前提馅饼”
    对于 50% 的数据,1 ≤ k ≤ 10,1 ≤ n ≤ 10
    对于 100% 的数据,1 ≤ k ≤ 100,1 ≤ n ≤ 15,美味度为属于 [−10 6 ,10 6 ] 的整


    期望是个啥?
    期望其实就是一个平均值。
    度娘讲的比较明白
    $E(x)=sum_{i=1}^{n} x_i*p_i$
    xi为随机变量,pi为xi出现的概率

    对于这道题,每个馅饼出现的概率为 1/n
    dp[i][j]表示吃i馅饼,前面吃馅饼的状态为j最大的期望美味值。
    于每一次掉馅饼,枚举掉下来的馅饼是谁
    若s&a[j]==a[j](a[i]为前提馅饼集合)
    dp[i][s] -> dp[i+1][s|(1<<(j-1))]
    注意要 /n(概率)

    #include <cstdio>
    #include <iostream>
    using namespace std;
    int q[151],v[151];
    double dp[151][(1<<17)];
    int main()
    {
    	int n,k;
    	scanf("%d%d",&k,&n);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&v[i]);
    		while(1)
    		{
    			int x;
    			scanf("%d",&x);
    			if(!x) break;
    			q[i]^=(1<<x-1);
    		}
    	}
    	for(int i=k;i>=1;i--)
    	 for(int j=0;j<(1<<n);j++)
    	 {
    	  for(int p=1;p<=n;p++)
    	   if((q[p]&j)==q[p])
    	    dp[i][j]+=max(dp[i+1][j],dp[i+1][j|(1<<p-1)]+v[p]);
    	   else
    	    dp[i][j]+=dp[i+1][j];
    	    
    	   dp[i][j]=dp[i][j]/(double)n;
    	   //printf("%.6lf
    ",dp[i][j]);
         } 
        printf("%.6lf",dp[1][0]);
    } 
    
  • 相关阅读:
    uft/qtp的参数化
    华为数据之道-读书笔记
    python操作neo4j
    PyPDF2提取pdf中的信息
    时间片轮转算法
    百度地图根据类别不同做不同的标注
    操作系统-考点
    《修改代码的艺术》读书笔记
    【2021.07.06】抗争性人格的自我记录
    【2021.06.16】即将到来的毕业
  • 原文地址:https://www.cnblogs.com/ht008/p/7729764.html
Copyright © 2020-2023  润新知