[CF442B] Andrey and Problem (概率dp)
题目链接:http://codeforces.com/problemset/problem/442/B
题目大意:有n个人,第i个人出一道题的概率是pi,现在选出一个子集,使得这些人恰好出一个题的概率最大。问最大概率。
可以仿照背包问题来做,即每个人可问可不问。
f[i][j]代表从前i个人里问j个人所获得1个题的最大概率。
f[i][j] = max{ f[i-1][j], f[i-1][j-1]*(1-p[i])+z[i-1][j-1]*p[i] };
z[i][j]为从前i个人里问j个人所获得1个题的最大概率对应的一个题也出不出来的概率。
转移见代码
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <bitset>
#include <cmath>
#include <numeric>
#include <iterator>
#include <iostream>
#include <cstdlib>
#include <functional>
#include <queue>
#include <stack>
#include <string>
#include <cctype>
using namespace std;
#define PB push_back
#define MP make_pair
#define SZ size()
#define ST begin()
#define ED end()
#define CLR clear()
#define ZERO(x) memset((x),0,sizeof(x))
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
const double EPS = 1e-; int n;
double f[][],p[],z[][]; int main(){
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%lf",&p[i]);
for(int i=;i<;i++) z[][i] = z[i][] = 1.0;
for(int i=;i<=n;i++){
for(int j=;j<=i;j++){
// printf("i=%d,j=%d\n",i,j);
// printf("f[i-1][j]=%f,f[i-1][j-1]*(1-p[i])+z[i-1][j-1]*p[i]=%f\n",f[i-1][j],f[i-1][j-1]*(1-p[i])+z[i-1][j-1]*p[i]);
if( f[i-][j]<f[i-][j-]*(-p[i])+z[i-][j-]*p[i] ){
f[i][j] = f[i-][j-]*(-p[i])+z[i-][j-]*p[i];
z[i][j] = z[i-][j-]*(-p[i]);
} else {
f[i][j] = f[i-][j];
z[i][j] = z[i-][j];
}
}
}
double ans = ;
for(int i=;i<=n;i++){
ans = max(ans,f[n][i]);
}
printf("%.12f\n",ans);
return ;
}
[CF442B] Andrey and Problem (概率dp)的更多相关文章
- cf442B Andrey and Problem
B. Andrey and Problem time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- BZOJ 2318: Spoj4060 game with probability Problem( 概率dp )
概率dp... http://blog.csdn.net/Vmurder/article/details/46467899 ( from : [辗转山河弋流歌 by 空灰冰魂] ) 这个讲得很好 , ...
- BZOJ 2318: Spoj4060 game with probability Problem (概率dp)(博弈论)
2318: Spoj4060 game with probability Problem Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果 ...
- 【bzoj2318】Spoj4060 game with probability Problem 概率dp
题目描述 Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果正面朝上,则从n个石子中取出一个石子,否则不做任何事.取到最后一颗石子的人胜利.Alice在投掷硬币时有 ...
- Codeforces 513G1 513G2 Inversions problem [概率dp]
转自九野:http://blog.csdn.net/qq574857122/article/details/43643135 题目链接:点击打开链接 题意: 给定n ,k 下面n个数表示有一个n的排列 ...
- Codeforces Round #253 Div2 D.Andrey and Problem 概率+贪心
概率计算:P(某set) = 令: 和 现在考虑: 1.考虑某个集合,再加一个概率为Pi的朋友后能不能使总概率提高. 即: 由公式可知, 如果 S < 1,则delta > 0,则 ...
- 【BZOJ2318】【spoj4060】game with probability Problem 概率DP
链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- LuoguP2523 [HAOI2011]Problem c(概率DP)
傻逼概率\(DP\),熊大坐这,熊二坐这,两熊体积从右往左挤,挤到\(FFF\)没座位了就不合理了 否则就向左歇斯底里爬,每个\(FFF\)编号就组合一下,完闭 #include <iostre ...
- Andrey and Problem
B. Andrey and Problem time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
随机推荐
- 第一个Java web项目:员工管理系统
要求: 做一个登陆页面,实现登录,用户名和密码都是admin,登录成功后,用session记录用户名,登录失败,请提示失败原因. 做一个简单的管理系统,实现注册,修改,查询,删除 员工的功能,注册内容 ...
- ssh传输文件
在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...
- WP8.1 Study17:网络之后台下载/上传及HttpClient
一.后台下载/上传 1.简介 使用BackgroundTransferGroup可以十分方便操作上传及下载文件,BackgroundDownloader和BackgroundUploader类中的方法 ...
- js异步加载
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页 ...
- What is a watch descriptor
http://stackoverflow.com/questions/24342156/what-are-watch-descriptors-really-linux-inotify-subsyste ...
- php大力力 [044节] PHP的POST语句一定要大写!!if(!empty($_POST['id'])) {
早上花了几个小时,寻找错误!!! 不应该这样写 if(!empty($_Post['id'])) { 应该这样写 if(!empty($_POST['id'])) { 万万不能小谢!
- 【Selenium2+Python】定位
定位Frame driver.switch_to_frame("frameID") 多窗口切换 #获得当前窗口 nowhandle = driver.current_window_ ...
- C#常用操作类库三(XML操作类)
/// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...
- JS URL参数传递 谷歌乱码解决
//第一个页面 var name=encodeURIComponent("参数"); var url="test1.html?name="+name; //第二 ...
- Opencv结构与内容
一.Opencv的结构分类: cxcore.cv.ML(Machine Learning).HighGUI.cvcam.cvaux 二.常见结构的内容与算法: 1.cxcore库(基本结构和算法.XM ...