B - I NEED A OFFER!——HOJ 类0-1背包问题 +滚动数组
来源:互联网 发布:可以测三庭五眼的软件 编辑:程序博客网 时间:2024/06/05 07:18
滚动数组实现1:
#include<stdio.h>#include<string.h>#include<math.h>double my_max(double x,double y){ if(x>y) return x; else return y;}typedef struct node{ int x; double f;}NODE;NODE que[10005];double dp[2][10005];int main(){ int n,m,i,j; while(scanf("%d %d",&n,&m)!=EOF) { if(m==0&&n==0) break; memset(dp,0,sizeof(dp)); memset(que,0,sizeof(que)); for(i=1;i<=m;i++) { scanf("%d",&que[i].x); scanf("%lf",&que[i].f); } for(i=1;i<=m;i++) { for(j=0;j<=n;j++)//j是从0开始,不是从1开始 { dp[i%2][j]=dp[(i-1)%2][j]; if(que[i].x<=j) { double t; t=1-(1-dp[(i-1)%2][j-que[i].x])*(1-que[i].f); dp[i%2][j]=my_max(dp[i%2][j],t); } } } printf("%.1lf%%\n",dp[m%2][n]*100); } return 0;}
滚动数组实现2:
#include<stdio.h>#include<string.h>#include<math.h>double my_max(double x,double y){ if(x>y) return x; else return y;}typedef struct node{ int x; double f;}NODE;NODE que[10005];double dp[10005];int main(){ int n,m,i,j; while(scanf("%d %d",&n,&m)!=EOF) { if(m==0&&n==0) break; memset(dp,0,sizeof(dp)); memset(que,0,sizeof(que)); for(i=1;i<=m;i++) { scanf("%d",&que[i].x); scanf("%lf",&que[i].f); } for(i=1;i<=m;i++) { for(j=n;j>=0;j--)//j是从0开始,不是从1开始 { if(que[i].x<=j) { double t; t=1-(1-dp[j-que[i].x])*(1-que[i].f); dp[j]=my_max(dp[j],t); } } } printf("%.1lf%%\n",dp[n]*100); } return 0;}
0 0
- B - I NEED A OFFER!——HOJ 类0-1背包问题 +滚动数组
- I NEED A OFFER! (0-1背包的乘法)
- hdu 1203 I NEED A OFFER!(0/1背包)
- hdu 1203 dp(0,1 背包) I NEED A OFFER!
- HDU-1203 I NEED A OFFER!(0、1背包)
- HDU 1203 I NEED A OFFER! 0-1背包
- hdu 1203 I NEED A OFFER!(0-1背包)
- HDU1203 I NEED A OFFER! (0-1背包)
- HDOJ 1203 I NEED A OFFER!(0 1背包)
- 【hdu1203】I NEED A OFFER!——01背包
- dp背包——I NEED A OFFER!
- hdu1203 — I NEED A OFFER! (01背包)
- hdu 1203 I NEED A OFFER!(0-1背包问题)
- 动态规划:HDU-1203-0-1背包问题:I NEED A OFFER!
- 【Eternallyc】HDU-1203-I NEED A OFFER!(0-1背包问题)
- HUD1203——I NEED A OFFER!(背包问题,最小值的动态规划)
- HDU 1203 I NEED A OFFER![动态规划——01背包问题+简单概率]
- 动态规划—杭电ACM 1203 I NEED A OFFER!(01背包问题)
- ip udp tcp 报文格式
- ZooKeeper安装与配置
- WebView加载图片
- canva基础学习(一)
- Android 实现FlowLayout流式布局(类似热门标签)
- B - I NEED A OFFER!——HOJ 类0-1背包问题 +滚动数组
- 软件包管理(二)
- 数据库mysql 操作 和linux一些记录
- win7设置定时开关机
- Codeforces 319E Ping-Pong (线段树+dsu)
- Service中同一命令执行两次结果不同
- SwipeRefreshLayout
- 关于在Android Studio中使用Assets目录下的资源的问题
- 虚函数和纯虚函数的区别