HDU 1203 I Need A Offer
来源:互联网 发布:站长源码下载 编辑:程序博客网 时间:2024/06/05 19:06
原题链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1203
题目大意:
《中文题》
思路:
要求至少拿到一份Offer的概率。那么根据高中知识只需要用 1-P(都拿不到Offer)就是所要求的概率。
在状态转移方程中要注意。两个事件是都要发生所以概率是用乘算而不是加算。
代码如下:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct I{ int cost; double p;}s[10005];double dp[10000];int main(){ int n,m; while( ~scanf("%d %d",&n,&m) ) { if( n == 0 && m == 0 ) break; int i; for( i = 0; i < m; i++ ) { scanf("%d %lf",&s[i].cost,&s[i].p ); //将输入的拿到Offer的概率转换成拿不到的概率 s[i].p = 1 - s[i].p ; } for( i = 0; i <= n; i++ ) dp[i] = 1.0; int j; for( i = 0; i < m; i++ ) for( j = n; j >= s[i].cost ; j-- ) //要求拿到Offer的概率最大。所以拿不到的概率要最小 dp[j] = min( dp[j],dp[j-s[i].cost ]*s[i].p ); //最后输出的时候要记得用1去减 printf("%.1lf%%\n",(1 - dp[n] )*100); } return 0;}
0 0
- hdu 1203 I NEED A OFFER!
- hdu-1203 I Need a Offer
- hdu 1203 I NEED A OFFER!
- HDU 1203 ( I NEED A OFFER! )
- HDU 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- HDU 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- HDU 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER
- HDU-1203-I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- hdu 1203 I NEED A OFFER!
- HDU 1203 I NEED A OFFER!
- 一个支持tcp多客户端连接的例子,轻松认识linux select函数的基本原理和使用方法
- 嵌入式linux远程gdb调试(基于x86架构)
- 设计模式-访问者模式
- 【Android】 由ListView+ ViewHolder想到的
- 怎么发布一个pom项目且打包maven源码,将源码包与jar包一同deploy到mavenserver
- HDU 1203 I Need A Offer
- HDU1712 ACboy needs your help(分组背包)
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- zzuli OJ 1073: 海军节上的鸣炮声计算
- Android自定义View的实现方法,带你一步步深入了解View(四)
- linux学习(九) date命令详解
- mysql 实现伪序号
- UITableView上拉时崩溃问题及解决
- png压缩