tyvj 1864 守卫者的挑战
解题思路
dp[i][j][k]表示前i个挑战,赢了j场,现在还有k个包的获胜概率。 
转移方程: 
dp[i+1][j+1][k+a[i]] += p[i+1]*dp[i][j][k] (k+a[i]>=0) 
dp[i+1][j][k]+=(1-p[i+1])*dp[i][j][k] 
时间复杂度O(n^3)
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN = 205;
inline int rd(){
  int x=0,f=1;char ch=getchar();
  while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}
  while(isdigit(ch))  {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
  return x*f;
}
int n,k,L;
double dp[MAXN][MAXN][MAXN],ans;
struct Bag{
    double p;
    int a;
}bag[MAXN];
inline bool cmp(Bag x,Bag y){
    return x.a>y.a;
}
int main(){
  n=rd();L=rd();k=rd();
  for(register int i=1;i<=n;i++) {
    int x=rd();
    bag[i].p=(double)x/100;
  }
  for(register int i=1;i<=n;i++) bag[i].a=rd();
  sort(bag+1,bag+1+n,cmp);
  dp[0][0][k]=1;
  for(register int i=0;i<n;i++)
    for(register int j=0;j<=i;j++)
      for(register int o=n;o>=0;o--){
        dp[i+1][j][o]+=dp[i][j][o]*(1-bag[i+1].p);
        if(o+bag[i+1].a<0) continue;
        dp[i+1][j+1][min(o+bag[i+1].a,n)]+=dp[i][j][o]*bag[i+1].p;
   }
    for(register int i=0;i<=n;i++)
      for(register int j=L;j<=n;j++)
        ans+=dp[n][j][i];
    printf("%.6lf",ans);
  return 0;
}tyvj 1864 守卫者的挑战的更多相关文章
- 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]守卫者的挑战(DP+概率)
		P1864 [Poetize I]守卫者的挑战 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜 ... 
- 【TYVJ1864】[Poetize I]守卫者的挑战 概率与期望
		[TYVJ1864][Poetize I]守卫者的挑战 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我 ... 
- 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的大门,队 ... 
- 【BZOJ3029】守卫者的挑战 概率+背包
		[BZOJ3029]守卫者的挑战 Description 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过.“我,Nizem, ... 
- Tyvj——P1864 [Poetize I]守卫者的挑战
		来源:http://www.tyvj.cn/p/1864 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过.“我,Niz ... 
随机推荐
- LINQ学习系列-----3.1 查询非泛型集合和多个分组
			一.查询非泛型集合 1.问题起源 LINQ to object在设计时,是配合IEnumerable<T>接口的泛型集合类型使用的,例如字典.数组.List<T>等,但是对于继 ... 
- PAT甲级——A1100 Mars Numbers
			People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. T ... 
- 第二周——1.项目中MySQL版本问题
			1.版本升级 经组长推荐,本地安装的是mysql-8.0.11,而主项目用的还是版本5.6, 因此需要升级版本. 首先,更新驱动:下载mysql-connector-java-8.0.11,将E:\P ... 
- C++和C#之间的数据类型对应关系
			最近接触WINAPI比较多,一直要楂数据类型间的对应关系,所姒就转载一下~ # Windows Data Type .NET Data Type # BOOL, BOOLEAN Boolean or ... 
- 重装一次CM的坑爹记录
			今天同事要对测试环境进行降级(测试高于生产所以要求降级),自己不经常搞运维,但是无奈测试环境没运维管理只能自己上了. 流程和遇到问题按数字表示. 1.重装CM(clouder manager)这个过程 ... 
- UVA - 1230
			https://vjudge.net/problem/UVA-1230 费马小定理优化快速幂 #include <iostream> #include <cstdio> #in ... 
- 常用的git操作命令
			整理来源于廖雪峰的git教程https://www.liaoxuefeng.com git: 分布式版本控制系统 本地有完整的代码库,还有远程代码库 svn: 集中式版本控制系统 必须联网时才可提交 ... 
- ArccGIS 10发布WFS服务并加载到Skyline中
			下面用ArcGIS Server 10.0将建筑物图层发布为WFS服务. (1)创建mxd文件.ArcMap打开建筑物图层,存为Buildings.mxd文件.注意:必须统一空间参考系,且要与图层的坐 ... 
- [转载] OpenCV2.4.3 CheatSheet学习(一)
			OpenCV向MATLAB靠拢,图像的操作方法变得不那么C了,更m了一些.比如,MATLAB中的常用函数imshow.imread.imwrite函数在OpenCV中已经有了同名的兄弟. 此外,Ope ... 
- 微端 打包更新工具 as air 分享
			分享 微端,更新的是散包,不像端游,一个大包搞定. 更新须要每次用工具把资源的散文件.依据文件夹结构及时间 生成一个列表, 每次更新就是 文件夹及时间的比对! 该project能够翻译成 其它语言.有 ... 
