zoukankan      html  css  js  c++  java
  • 【BZOJ1076】【SCOI2008】—奖励关(期望+状压dp)

    传送门

    考虑到当前选的物品会对后面决策产生影响,不好处理选还是不选,所以考虑从后往前递推

    f[i][sta]f[i][sta]表示第ii轮,已选的状态为stasta时,后面最多可以得到的价值

    然后就是简单题了

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define re register
    inline int read(){
        char ch=getchar();
        int res=0,f=1;
        while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
        while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48),ch=getchar();
        return res*f;
    }
    const int K=105;
    const int N=17;
    double a[N],f[K][1<<15],ans;
    int n,k,pre[N];
    int main(){
    	k=read();
    	n=read();
    	for(int i=1;i<=n;i++){
    		a[i]=read();int x=read();
    		while(x){
    			pre[i]+=(1<<(x-1));
    			x=read();
    		}
    	}
    	int sta=(1<<n)-1;
    	for(int p=k;p;p--){
    		for(int i=0;i<=sta;i++){
    			for(int j=1;j<=n;j++){
    				if((i&pre[j])==pre[j])
    					f[p][i]+=max(f[p+1][i],f[p+1][i|(1<<(j-1))]+a[j]);
    				else f[p][i]+=f[p+1][i];
    			}
    			f[p][i]/=n;
    		}
    	}
    	printf("%.6lf",f[1][0]);
    }
  • 相关阅读:
    图片懒加载原生写法。
    ES6新声明
    下拉刷新上拉加载
    angular动画
    angular路由切换后 轮播以及iscrollJs失效的问题
    ui-route多级嵌套时的默认显示。
    iscroll.js的基本布局
    angular ng-route和ui-route
    require.js JQ
    Cookie&Session
  • 原文地址:https://www.cnblogs.com/stargazer-cyk/p/11145671.html
Copyright © 2011-2022 走看看