码迷,mamicode.com
首页 > 其他好文 > 详细

luogu2473 [SCOI2008]奖励关

时间:2018-01-03 13:50:18      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:研究   div   turn   ios   www   max   iostream   tps   return   

题解参照这里
每个研究完记得乘一个1/n,这是乘了概率。

#include <iostream>
#include <cstdio>
using namespace std;
double dp[105][33005];
int n, k, p[25], d[25], uu;
int main(){
    cin>>k>>n;
    for(int i=1; i<=n; i++){
        scanf("%d", &p[i]);
        scanf("%d", &uu);
        while(uu){
            d[i] |= 1<<(uu-1);
            scanf("%d", &uu);
        }
    }
    for(int i=k; i>=1; i--)
        for(int j=0; j<(1<<n); j++){
            for(int l=1; l<=n; l++)
                if((j&d[l])==d[l])
                    dp[i][j] += max(dp[i+1][j], dp[i+1][j|(1<<(l-1))]+p[l]);
                else
                    dp[i][j] += dp[i+1][j];
            dp[i][j] /= n;
        }
    printf("%.6lf\n", dp[1][0]);
    return 0;
}

luogu2473 [SCOI2008]奖励关

标签:研究   div   turn   ios   www   max   iostream   tps   return   

原文地址:https://www.cnblogs.com/poorpool/p/8183040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!