正题


题目大意

nnn个人,第iii投票的概率是pip_ipi​,选择kkk个求最大的平票概率。


解题思路

我们显然要让kkk人中一半投票的概率大,一半投票的概率小。

所以我们可以先进行排序,这样我们发现答案一定是选取一段前缀和一段后缀。我们用fi,jf_{i,j}fi,j​表示前iii个人,投jjj票的概率,用gi,jg_{i,j}gi,j​表示后iii个人,投jjj票的概率。

然后我们答案为max{∑j=0k2(fi,j∗gk−i,k2−j)}(i∈[1..k])max\{\sum_{j=0}^{\frac{k}{2}}(f_{i,j}*g_{k-i,\frac{k}{2}-j})\}(i\in[1..k])max{j=0∑2k​​(fi,j​∗gk−i,2k​−j​)}(i∈[1..k])


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=2200;
int n,k;
double ans,p[N],f[N][N],g[N][N];
bool cmp(double x,double y)
{return x>y;}
int main()
{freopen("vote.in","r",stdin);freopen("vote.out","w",stdout);scanf("%d%d",&n,&k);for(int i=1;i<=n;i++)scanf("%lf",&p[i]);sort(p+1,p+1+n);f[0][0]=g[0][0]=1;for(int i=1;i<=k;i++)for(int j=0;j<=i;j++)if(!j) f[i][j]=f[i-1][j]*(1-p[i]);else f[i][j]=f[i-1][j-1]*p[i]+f[i-1][j]*(1-p[i]);sort(p+1,p+1+n,cmp);for(int i=1;i<=k;i++)for(int j=0;j<=i;j++)if(!j) g[i][j]=g[i-1][j]*(1-p[i]);else g[i][j]=g[i-1][j-1]*p[i]+g[i-1][j]*(1-p[i]);for(int i=0;i<=k;i++){double tmp=0;for(int j=0;j<=k/2;j++)tmp+=f[i][j]*g[k-i][k/2-j];ans=max(ans,tmp);}printf("%.9lf",ans);
}

jzoj6296-投票【期望dp,贪心】相关推荐

  1. 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra

    题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...

  2. luogu P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现) Weblin ...

  3. [SCOI2008]奖励关(期望dp)

    你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃). 宝 ...

  4. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  5. 【bzoj4318】OSU! 期望dp

    题目描述 osu 是一款群众喜闻乐见的休闲软件.  我们可以把osu的规则简化与改编成以下的样子:  一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的0 ...

  6. 【loj6342】跳一跳 期望dp

    题目描述 一个人从 $1$ 开始向 $n$ 跳,在 $i$ 时会等概率跳到 $i,i+1,...,n$ 之一.求从 $1$ 跳到 $n$ 的期望步数. $n\le 10^7$ . 题解 期望dp傻逼题 ...

  7. 【高斯消元】兼 【期望dp】例题

    [总览] 高斯消元基本思想是将方程式的系数和常数化为矩阵,通过将矩阵通过行变换成为阶梯状(三角形),然后从小往上逐一求解. 如:$3X_1 + 2X_2 + 1X_3 = 3$ $           ...

  8. Luogu P3251 [JLOI2012]时间流逝 期望dp

    题面 题面 题解 期望\(dp\)好题! 今年\(ZJOI\)有讲过这题... 首先因为\(T\)只有\(50\),大力\(dfs\)后发现,可能的状态数最多只有\(20w\)左右,所以我们就可以大力 ...

  9. 【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP

    [题意]n种宝物,k关游戏,每关游戏给出一种宝物,可捡可不捡.每种宝物有一个价值(有负数).每个宝物有前提宝物列表,必须在前面的关卡取得列表宝物才能捡起这个宝物,求期望收益.k<=100,n&l ...

最新文章

  1. sklearn.model_selection.train_test_split随机划分训练集和测试集
  2. C 语言编程 — const 关键字
  3. jmeter时间格式化
  4. 算法导论之多项式与快速傅里叶变换
  5. Android优化——UI优化(二) 使用include标签复用布局
  6. window.atob()与window.btoa()方法实现编码与解码
  7. 在线场景感知:图像稀疏表示-ScSPM和LLC总结(lasso族、岭回归)
  8. 赋能开发者,英特尔发布oneAPI 2022工具包
  9. Angular过滤器
  10. cocos2d-x Lua与OC互相调用
  11. python中def root的用法_python scipy optimize.root_scalar用法及代码示例
  12. java 生成验证码
  13. ashly理器4.8软件汉化版_工程造价专业 常用广联达CAD等软件 推荐什么笔记本电脑?...
  14. 一秒学会,小白也能上手,最简单的装逼代码
  15. 如何增加(软件测试)自动化测试面试成功率?只需学会主流设计模式PO+关键字驱动!
  16. 计算机术语 gc 是什么意思,gc是什么意思的缩写
  17. Mapped Statements collection does not contain value for错误可能
  18. VMware Workstation虚拟机无法获取IP地址的解决办法
  19. linux在双系统中消失了,win和linux双系统下,重装win系统导致linux系统消失的解决办法...
  20. Oracle数据库:约束行限制where语句,判断条件,比较条件,字符串日期格式,in,like,escape,null语句

热门文章

  1. Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
  2. 加密封装 怎么把_不要再封装各种Util工具类了,这个神级框架值得拥有!
  3. centos amd双显卡_PCIe4.0和PCIe3.0对显卡性能差别大吗?
  4. 反射的基本知识(详解)
  5. 并查集的相关知识详解 Come baby!!!
  6. 10-2 5-2 查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 (20 分)(思路加详解+测试用例)
  7. [数据结构-严蔚敏版]P71串的抽象数据类型的定义
  8. C++ setprecision()用法
  9. 英语期末复习unit 1-2课后习题第一题及背诵段落
  10. 调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...