[Poetize I]守卫者的挑战
擂台赛一共有N项挑战,各项挑战依
次进行。第i项挑战有一个属性ai,如果ai>=0,表示这次挑战成功后可以再获得一个容量为ai的包包;如果ai=-1,则表示这次挑战成功后可
以得到一个大小为1 的地图残片。地图残片必须装在包包里才能带出擂台,包包没有必要全部装满,但是队员们必须把 【获得的所有的】地图残片都带走(没有
得到的不用考虑,只需要完成所有N项挑战后背包容量足够容纳地图残片即可),才能拼出完整的地图。并且他们至少要挑战成功L次才能离开擂台。
队员们一筹莫展之时,善良的守卫者Nizem帮忙预估出了每项挑战成功的概率,其中第i项挑战成功的概率为pi%。现在,请你帮忙预测一下,队员们能够带上他们获得的地图残片离开擂台的概率。
三维DP,只不过下标有负数比较麻烦,无奈写了p(貌似c++用个宏就ok了?)
枚举每个状态,按输赢来递推即可。吐槽一下此题数据是有多弱,按理说应该开20W*2*200的数组,M成翔,改成500*2*200就过了。。。
代码:
var i,j,k,n,l,t,mx:longint;
a,b:array[..] of longint;
f:array[..,-..,..] of double;
ans:double;
begin
read(n);read(l);read(mx);
for i:= to n do read(b[i]);
for i:= to n do read(a[i]);
f[,mx,]:=1.0;t:=;
for i:= to n do
begin
t:=-t;if(a[i]>)then inc(mx,a[i]);
for j:=-n to mx do
for k:= to i do
begin
f[t,j,k]:=f[-t,j,k]*(-b[i])/;
if(k>)then f[t,j,k]:=f[t,j,k]+f[-t,j-a[i],k-]*b[i]/;
end;
end;
for i:= to mx do for j:=l to n do ans:=ans+f[t,i,j];
writeln(ans::);
end.
hzwer的做法比较好:
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<set>
#include<vector>
#include<algorithm>
#define inf 1000000000
#define ll long long
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int n,l,K;
double f[][][];
double ans;
struct data{double p;int v;}a[];
bool operator<(data a,data b)
{
return a.v>b.v;
}
int main()
{
//freopen("guard.in","r",stdin);
//freopen("guard.out","w",stdout);
n=read();l=read();K=read();
for(int i=;i<=n;i++)
{
scanf("%lf",&a[i].p);
a[i].p/=;
}
for(int i=;i<=n;i++)a[i].v=read();
sort(a+,a+n+);
f[][][min(K,)]=;
for(int i=;i<n;i++)
for(int k=;k<=i;k++)
for(int j=;j<=n;j++)
{
f[i+][k][j]+=f[i][k][j]*(-a[i+].p);
int t=j+a[i+].v;
if(t<)continue;
t=min(t,n);
f[i+][k+][t]+=f[i][k][j]*a[i+].p;
}
for(int i=;i<=n;i++)
for(int j=l;j<=n;j++)
ans+=f[n][j][i];
printf("%.6lf",ans);
return ;
}
[Poetize I]守卫者的挑战的更多相关文章
- 【TYVJ1864】[Poetize I]守卫者的挑战 概率与期望
[TYVJ1864][Poetize I]守卫者的挑战 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我 ...
- tyvj P1864 [Poetize I]守卫者的挑战(DP+概率)
P1864 [Poetize I]守卫者的挑战 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜 ...
- TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
题目链接...无 题目: P1864 [Poetize I]守卫者的挑战 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 打开了黑魔法师Vani的大门,队员们 ...
- Tyvj 1864 [Poetize I]守卫者的挑战
P1864 [Poetize I]守卫者的挑战时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻 ...
- Tyvj——P1864 [Poetize I]守卫者的挑战
来源:http://www.tyvj.cn/p/1864 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过.“我,Niz ...
- tyvj1864 [Poetize I]守卫者的挑战
期望dp 不考虑打的顺序,只要最后能把地图都装下就行了,因此把概率和容量装进一个结构体里面,把地图放后面. 记一个状态f[i][j][k]表示前i个比赛,赢了j场,容量k的期望,转移即可. #incl ...
- TYVJ1864 守卫者的挑战
P1864 [Poetize I]守卫者的挑战 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜 ...
- TYVJ-P1864 守卫者的挑战 题解
P1864 [Poetize I]守卫者的挑战 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜 ...
- 【BZOJ3029】守卫者的挑战 [期望DP]
守卫者的挑战 Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 打开了黑魔法师Vani的大门,队 ...
随机推荐
- 安装 Panda3D 并使用原有的Python
Part 1:什么是Panda3D [原始网站] [中文版本] Part 2:注意事项 Panda3D的版本必须与Python相匹配 Part 3:使用已安装的Python 将‘C:\Panda3D- ...
- 从Delphi 7升级到Delphi XE
Delphi 7和XE中间有好几个版本号,可都不太流行,一是由于Delphi有些边缘化,二是7在XP环境下是近乎完美的版本号.市场上关于delphi的书越来越少,提供从7升级到XE介绍的资料差点儿没用 ...
- Adblock Plus完美过滤视频网站广告、无黑屏!及屏蔽非本站脚本的Adblock Plus过滤器语法之探讨
测试用浏览器:Firefox 24.订阅的Adblock Plus过滤规则有默认的 ChinaList + EasyList,和国内视频广告规则[Yge.me],其网址:http://i.yge.me ...
- 第一篇:数据库需求与ER建模
前言 在数据库建设过程中,哪一步最重要?绝大多数资料会告诉你,是需求分析阶段.这一步的好坏甚至直接决定数据库项目的成败. 需求分析阶段,也被称为ER建模(entity-relationship mod ...
- 自定义filter包
在有些时候,你可能需要以你的所有项目进行全局的过滤. 因为你的项目可以设计到互相的依赖和调用 . 修改在tomcat下的conf下的web.xml文件.和在原来的web-inif下的修改一样,添加fi ...
- Ubuntu下全命令行安装Android SDK
为了在AWS云服务器上实现自动化打包Android APP的APK包,我需要远程命令行环境下安装Android SDK,当然还要用代理或者科学上网,这里简单整理一下过程: 首先,由于墙的原因,Andr ...
- Python之路,Day12 - 那就做个堡垒机吧
Python之路,Day12 - 那就做个堡垒机吧 本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...
- javascript 动态控制复选框的选择和取消
这里就需要引入一个jquery-1.4.2.js 就行了,因为用到了里面的选择器 <html> <head> <script type="text/javasc ...
- java编程思想-注解思维导图
- cxf WebService整理 (基于注解)
http://blog.csdn.net/zjw10wei321/article/details/39889823