hdu 1203 I NEED A OFFER!
来源:互联网 发布:氰化钾淘宝叫什么名字 编辑:程序博客网 时间:2024/06/06 09:18
hdu 1203 I NEED A OFFER! 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1203
dp 01背包
题目分析:简单0-1背包。
code:
#include<stdio.h>#include<string.h>int m,n,pr[10010];double pe[10010],dp[10010];double min(double a,double b){return a<b?a:b;}int main(){int i,j;while(scanf("%d%d",&m,&n),m||n){for(i=0;i<n;i++){scanf("%d%lf",&pr[i],&pe[i]);pe[i]=1-pe[i];if(pr[i]>m)i--,n--;}for(i=0;i<=m;i++)dp[i]=1.0;for(i=0;i<n;i++)for(j=m;j>=pr[i];j--)dp[j]=min(dp[j],dp[j-pr[i]]*pe[i]);printf("%.1f%%\n",(1-dp[m])*100);}return 0;}
一开始用的搜索,居然一直wrong,不知为何……
code:
#include<stdio.h>int m,n,pr[10010];double pe[10010],dp[10010],ans;void dfs(int sum,double a,int k){if(ans>a)ans=a;if(sum==m)return;int i,j;for(i=k;i<n;i++){if(sum+pr[i]<=m)dfs(sum+pr[i],a*pe[i],i+1);else break;}}int main(){int i,j;while(scanf("%d%d",&m,&n),m||n){for(ans=1,i=0;i<n;i++){scanf("%d%lf",&pr[i],&pe[i]);pe[i]=1-pe[i];if(pr[i]>m)i--,n--;}dfs(0,1,0);ans=(1-ans)*100;printf("%.1f%%\n",ans);}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!
- opencv的hog源码分析(详细的hog.cpp注解)
- 黑马程序员—7—Java基础:有关异常学习笔记和学习心得体会
- rails的Mysql一主多从,主写从读解决方案
- iOS开发_统计xcode代码行数
- Oracle VM VirtualBox上安装ubuntu
- hdu 1203 I NEED A OFFER!
- 创建一个Windows 服务
- 【Linux】VirtualBox安装ubuntu排错LowGraphic
- 你应该尝试的5个跨平台移动开发工具
- hadoop集群搭建文档
- linux C++学习之路
- 将产品在移动应用市场中推向成功的十点建议
- Sqoop笔记
- 回调函数