bzoj1076【概率dp+状压】
2016-11-16 11:04
260 查看
好神奇的题,正着递推会有很多问题,可以用f[i][s]表示已经过了i个宝物,状态为s,之后最多还能得多少分,这样就可以倒着递推啦
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
typedef long long LL;
inline LL read()
{
LL x=0;bool f=0;char c=getchar();
for (;c<'0'||c>'9';c=getchar()) f=c=='-'?1:0;
for (;c>='0'&&c<='9';c=getchar()) x=x*10+c-'0';
return f?-x:x;
}
int K,n,p[20],d[20],w[20];
double dp[2][32770],*f,*g;
int main()
{
K=read();n=read();f=dp[0],g=dp[1];
for (int i=1;i<=n;i++) p[i]=1<<i-1;
for (int i=1,r;i<=n;i++)
{
w[i]=read();
while (r=read()) d[i]|=p[r];
}
for (;K--;swap(f,g))
for (int s=0;s<1<<n;s++)
{
f[s]=0;
for (int i=1;i<=n;i++)
if ((d[i]&s)==d[i])
f[s]+=max(g[s],g[s|p[i]]+w[i]);
else f[s]+=g[s];
f[s]/=n;
}
printf("%.6lf\n",g[0]);
return 0;
}
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
typedef long long LL;
inline LL read()
{
LL x=0;bool f=0;char c=getchar();
for (;c<'0'||c>'9';c=getchar()) f=c=='-'?1:0;
for (;c>='0'&&c<='9';c=getchar()) x=x*10+c-'0';
return f?-x:x;
}
int K,n,p[20],d[20],w[20];
double dp[2][32770],*f,*g;
int main()
{
K=read();n=read();f=dp[0],g=dp[1];
for (int i=1;i<=n;i++) p[i]=1<<i-1;
for (int i=1,r;i<=n;i++)
{
w[i]=read();
while (r=read()) d[i]|=p[r];
}
for (;K--;swap(f,g))
for (int s=0;s<1<<n;s++)
{
f[s]=0;
for (int i=1;i<=n;i++)
if ((d[i]&s)==d[i])
f[s]+=max(g[s],g[s|p[i]]+w[i]);
else f[s]+=g[s];
f[s]/=n;
}
printf("%.6lf\n",g[0]);
return 0;
}
相关文章推荐
- BZOJ.1076.[SCOI2008]奖励关(概率DP 倒推)
- BZOJ 1076: [SCOI2008]奖励关(概率+dp)
- 【BZOJ1076】【SCOI2008】奖励关(期望+状压dp)
- BZOJ 1076: [SCOI2008]奖励关(期望+状压DP)
- bzoj 1076: [SCOI2008]奖励关【状压dp+概率dp】
- 【BZOJ-1076】奖励关 概率与期望 + 状态压缩DP
- BZOJ_3191_[JLOI2013]卡牌游戏_概率DP
- [BZOJ 1415][NOI 2005]聪聪和可可(SPFA+概率DP)
- 【bzoj 1076】[SCOI2008]奖励关(状压dp+概率)
- bzoj 3450: Tyvj1952 Easy(概率DP)
- BZOJ1444 有趣的游戏【AC自动机、概率DP】
- BZOJ 4318: OSU! (概率dp)
- 【BZOJ3640】JC的小苹果 概率DP+高斯消元
- [bzoj1426] 收集邮票(概率dp)
- BZOJ 2707: [SDOI2012]走迷宫 拓扑+高斯消元+期望概率dp+Tarjan
- CF16E Fish(概率dp+状压dp)
- 【BZOJ1415】【codevs1784】聪聪与可可,概率DP
- BZOJ 1076 奖励关 (状压期望dp)
- [期望DP] BZOJ1076: [SCOI2008]奖励关
- 【BZOJ1426】收集邮票 概率DP 论文题 推公式题