hdu多校第十场 1003 (hdu6693) Valentine's Day 贪心/概率
题意:
有许多物品,每个物品有一定概率让女朋友开心。你想让女朋友开心且只开心一次,让你挑一些物品,使得这个只开心一次的概率最大,求最大概率。
题解:
设物品i让女朋友开心的概率为$p_i$
若你挑选了1-k共k个物品,则可记女朋友一次都开心不了的概率$w_0=\prod _{i=1}^k (1-p_i)$ 女朋友恰好开心一次的概率$w_1=C_k^1\sum _{i=1}^k \frac{w*p_i}{1-p_i}$
则若挑第k+1个物品,女朋友恰好开心一次的概率为$w^,=w_0*p_k+w_1*(1-p_k)$
贪心选择性质:通过公式看出,若前k个物品的选择不是最优解,则第k+1个物品不管怎么选也一定不是最优解。
最优子结构性质:依旧通过公式看出,最优解一定包含概率最大的物品。
因此排序后从大到小,用上述公式贪心计算即可。
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
double a[];
//int main1(){
// int n;
// while(1){
// scanf("%d",&n);
// double frac=1;
// double ans=0;
// for(int i=1;i<=n;i++){
// scanf("%lf",&a[i]);
// frac*=(1-a[i]);
// }
// for(int i=1;i<=n;i++){
// ans+=(frac/(1-a[i]))*a[i];
// }
// printf("%f\n",ans);
// }
//
//
//}
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%lf",&a[i]);
}
sort(a+,a++n);
double pow=;
double ans=;
double maxx=;
for(int i=n;i>=;i--){
double now=a[i]*pow+(-a[i])*ans;
// printf("%lf\n",now);
ans=now;
maxx=max(maxx,now);
pow*=(-a[i]);
}
printf("%.8f\n",maxx);
}
return ;
}
hdu多校第十场 1003 (hdu6693) Valentine's Day 贪心/概率的更多相关文章
- hdu多校第十场 1009 (hdu6699) Block Breaker bfs/模拟
题意: 紧密排列的方块因为摩擦力一个一个稳定地挤在一起,但当一个方块的四个邻居中,上下两个至少空缺一个,左右两个至少空缺一个,则这个方块也将掉落. 每次锤掉一个方块,求多少个方块受牵连落下. 题解: ...
- hdu多校第八场 1003 (hdu6659) Acesrc and Good Numbers 数论/打表
题意: 对于某数k,若数字d在1-k中出现次数恰好为k,则称k为好数. 给定d,x,求x以内,对于d而言最大的好数.k范围1e18. 题解: 打表二分即可. 但是,1e18的表是没法打出来的,只能在o ...
- hdu多校第四场 1003 (hdu6616) Divide the Stones 机智题
题意: 给你重量分别为1到n的n个石头,让你分成重量相等,数量也相等的k组,保证k是n的约数.问你能不能分配,如果能,输出具体的分配方案. 题解: 首先,如果1到n之和不能整除k,那么一定不能如题意分 ...
- hdu多校第七场 1011 (hdu6656) Kejin Player 概率dp
题意: 一个游戏,有许多关,到下一关要花费金钱,做出尝试,有概率成功,若成功则到达下一关,若失败则停在此关或退回到前面某关,询问第l关到第r关的期望费用 题解: 显然,第r关到第l关的费用是dp[r] ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
- 2018 HDU多校第三场赛后补题
2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...
- 2014多校第十场1004 || HDU 4974 A simple water problem
题目链接 题意 : n支队伍,每场两个队伍表演,有可能两个队伍都得一分,也可能其中一个队伍一分,也可能都是0分,每个队伍将参加的场次得到的分数加起来,给你每个队伍最终得分,让你计算至少表演了几场. 思 ...
- 多校第六场 1003 hdu 5355 Cake(贪心)
题目链接:(数据加强后wa了) hdu 5355 题目大意: 给出一个蛋糕.切成1~n大小的n块.问是否能在不继续分割的情况下拼凑出m等份. 题目分析: 首先我们是可以知道每份蛋糕的尺寸的,利用n*( ...
- 2018多校第十场 HDU 6430 (线段树合并)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6430 题意:一棵树上每个节点权值为v[i],每个节点的heard值是:以它为LCA的两个节点的GCD的 ...
随机推荐
- spring boot 四大组件之Actuator
执行器(Actuator)的定义 执行器是一个制造业术语,指的是用于移动或控制东西的一个机械装置,一个很小的改变就能让执行器产生大量的运动.An actuator is a manufacturing ...
- Vue学习笔记【4】——Vue指令之v-on
Vue指令之v-on v-on指令介绍 直接使用指令v-on 使用简化指令@ 绑定事件代码:@事件名="methods中的方法名称" <!DOCTYPE html> & ...
- Spring boot自定义拦截器和拦截器重定向配置简单介绍
大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8 idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...
- HDU 4866 Shooting 题解:主席树
这题的主要的坑点就是他给你的射击目标有重合的部分,如果你向这些重合的部分射击的话要考虑两种情况: 射击目标数量 ≥ 重合数量 : 全加上 射击目标数量 ≤ 重合数量 : 只加距离*射击目标数量 然而这 ...
- Delphi 2010 XE 中使用 JSON 之 SuperObject68-6
JSON之SuperObject(1):一直盼着Delphi能够直接支持"正则:Delphi2009刚来的时候,有了JSON,但:Delphi2010带了两个相关单元:DBXJS:我想不等了 ...
- CSS中各种百分比(%)
1.固定定位 position:absolute;width:100%;height:100%: 中%相对的 都是浏览器的可视窗口宽高. 2.标准文档流中,标签的 % 单位除了height以外, ...
- vue简单的input校验手机号
<input class="phone input-style " :class="{'err-input' : phone.err}" v-model= ...
- Linux网卡驱动(4)—DM9000网卡驱动程序完全分析
1.硬件连接 mini2440开发板上DM9000的电气连接和mach-mini2440.c文件的关系 其中片选信号AEN使用了nGCS4,所以网卡的内存区域在BANK4,也就是从地址0x200000 ...
- Code::Blocks
Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境. Code::Blocks是开放源码软件.Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库w ...
- 工具类--MD5Utils
public class MD5Utils { private static final String[] HEX_DIGITS = { "0", "1", & ...