C. 保研

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 171            测试通过 : 40

题目描述

    对于一些名校而言,保研不仅可以由学校推免,也可以由学生自己向希望保研的学校提出申请,这个过程有点类似于外国学生向学校提交简历等待Offer的过程。但是,投递申请需要亲自去相应学校的研招办递交材料,这就需要一些成本(比如路费等),且每个院校都有自己的录取成功率。现在,请在总成本不超过限制的情况下,求出最大的成功率。

输入

输入包含多行。
    第一行包含两个正整数C和N,表示成本限额和N个学校。
    接下来N行,每行包含一个正整数c和一个浮点小数w,分别表示向该学校投递材料所需要消耗的成本和成功率。

输出

仅输出一行结果,包含一个小数点后保留4位的百分

小数(有%),表示最大成功率。

样例输入

10 3
4 0.1
4 0.2
5 0.3

样例输出

44.0000%

题目链接:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1860

解题思路:概率dp,反过来求不能录取的最小概率,就是能录取的最大概率,dp[i]表示费用为i的不能录取最小概率,状态转移方程为:dp[ j ] = min ( dp[ j ] ,dp[ j - price[ i ] ] * pro [ i ] ;

代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1000000;
double dp[maxn],pro[maxn];
int pri[maxn];int main()
{int n,v,i,j;double x,ans;scanf("%d%d",&v,&n);for(i=0;i<n;i++){scanf("%d%lf",&pri[i],&x);pro[i]=1.0-x;}for(i=0;i<maxn;i++)dp[i]=1.0;for(i=0;i<n;i++)for(j=v;j>=pri[i];j--)dp[j]=min(dp[j],dp[j-pri[i]]*pro[i]);ans=100.0*(1-dp[v]);printf("%.4lf%%\n", ans);return 0;
}

noj 1860 保研(01背包 概率dp)相关推荐

  1. 01背包+概率dp Just another Robbery 抢银行

    题意:有n各个银行,每个银行有v[ i ]的钱并且有x [ i ] 的被抓住啊概率,如果被抓概率<=p,那么他是安全的,求他期望的最大钱数. 输入 3    //3组 0.04 3 1 0.02 ...

  2. 【nyoj - 860】 又见0-1背包 (dp,反向0-1背包,好题好思路)

    题干: 又见01背包 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 输入 多组测试数据. 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的 ...

  3. 01背包 (dp专题)

    01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn.01背包是背包问题中最简单的问题.01背包的约束条件是给定几种物品,每种物品有 ...

  4. 01背包一维dp数组的实现

    二维的01背包模板 #include <iostream> #include <cstdio> #include <cstring>using namespace ...

  5. 01背包+概率问题 计蒜客 offer

    题目: 蒜头君很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了.要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的.蒜头君没有多少钱,总共只攒 ...

  6. 01背包 + 概率 之 hdu 2955

    // [7/20/2014 Sjm] /* 看到此题时,第一个想法是: 以P作为体积,Pj作为费用,Mj作为价值. 但是,double类型的不能作为数组下标,于是此法行不通.于是,从另一角度考虑: 被 ...

  7. hdu2126 Buy the souvenirs 01背包变形 dp

    链接:点我 题意:n个物品,m元钱,每个物品最多买一次,问最多可以买几件物品,并且输出方案数.加一维表示已经买几件物品. 我这里用了一个数组dp[v][2] ,dp[v][0] 储存原本要记录的 dp ...

  8. dp之01背包hdu3466(带限制的,当你所拥有的钱数大于某个限定值时才可以购买该物品)...

    题意:买东西,每个东西有三个特征值,p代表价格,q代表你手中钱必须不低于q才能买这个物品,v代表得到的价值. mark:又是变种01背包,每做一个变种的,就是一种提高.. 按照q - p以由大到小的顺 ...

  9. [UVa1213]Sum of Different Primes(递推,01背包)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

最新文章

  1. 卷积神经的这些坑你都踩过吗?
  2. 屌丝giser成长记-大学篇
  3. CentOS 7设置ulimit不生效的问题解决
  4. 用java编写打印时间_编写一个java程序,读取系统时间,然后将时间用中文输出...
  5. 赞!《Python面试大全》PDF版来啦!
  6. 微信小程序----全局变量
  7. pat 乙级 1033 旧键盘打字(C++)
  8. [html] 你有使用过summary标签吗?说说它的用途
  9. (转)暴涨、闪崩、分叉,监管,现在是投资机会?
  10. java 数据结构 pdf_数据结构java版本.pdf
  11. 计算机考试打字软件,书记员考试必备!打字练习软件及电脑练习打字快速提高方法?...
  12. 保险行业线上引流渠道有哪些?还在为没有客户而烦恼吗?这几招教你线上低成本引流获客!
  13. 基本知识 100190
  14. 编程设计模式中委托 和代理模式的区别
  15. 报错解决:Failed to load config “react-app“ to extend from.
  16. AS星尘(stardust)粒子系统 学习 3
  17. opporeno7和opporeno7pro的参数对比
  18. 浅析语音识别技术的工作原理及发展
  19. GaN(第三代器件)特性的总结
  20. 通俗理解 三次握手四次挥手(老友依恋式)

热门文章

  1. java 简体繁体转换
  2. 【双评价】城镇建设指向的水资源评价
  3. 腾讯云游戏多媒体解决方案:揭秘《QQ 炫舞》手游背后的音视频
  4. Wordpress企业网站建设SEO完整解决方案是什么?
  5. 《思维导图的三招十八式》读书笔记
  6. 2019年数学建模国赛赛前讲座收获
  7. Python 基于卷积神经网络(textCnn)对药品或疾病分类(适用于疾病归一化和药品归一化)
  8. word中两端对齐之后文字之间空格很大
  9. [福利]如何下载Tumblr的视频
  10. vivo手机哪款支持鸿蒙系统,vivo手机可以安装华为鸿蒙系统吗?