hdu2955 dp
来源:互联网 发布:js点击事件写法 编辑:程序博客网 时间:2024/05/24 05:32
#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <cmath>#include <cstring>#include <stack>#include <set>#include <map>#include <vector>using namespace std;#define INF 0x2fffffff#define LL long long#define MAX(a,b) ((a)>(b))?(a):(b)#define MIN(a,b) ((a)<(b))?(a):(b)int l[1000];double w[1000];double dp[10005][105];int main(){ int t; cin >> t; double a; int n; while(t--){ scanf("%lf %d",&a,&n); int sum = 0; for(int i = 1;i <= n;i++){ scanf("%d%lf",&l[i],&w[i]); w[i] = 1 -w[i]; sum += l[i]; } for(int i = 0;i <= sum;i++){ for(int j = 0;j <= n;j++){ dp[i][j] = 0; } } dp[0][0] = 1; for(int i = 0;i <= sum;i++){ for(int j = 1;j <= n;j++){ if(l[j] > i){ dp[i][j] = dp[i][j-1]; } else{ dp[i][j] = max(dp[i][j-1],dp[i-l[j]][j-1]*w[j]); } } } int ans = 0; a = 1 - a; for(int i = 0;i <= sum;i++){ if(dp[i][n] >= a ){ ans = i; } } printf("%d\n",ans); } return 0;}
同样是01背包问题,但是这道题变换了一个,这里面的价值现在变成了实数,所以这时候要改变dp的策略
0 0
- hdu2955 dp
- 【DP(背包)】 hdu2955 Robberies
- [HDU2955]Robberies[dp]
- hdu2955 dp(背包)
- HDU2955 Robberies DP
- hdu2955 概率dp?
- hdu2955 概率dp
- DP激情奉献(一)hdu2955
- hdu2955 Robberies 01背包 dp
- hdu2955
- HDU2955
- HDU2955
- hdu2955
- hdu2955
- hdu2955
- HDU2955
- HDU2955
- HDU2955
- 【翻译】在Ext JS 6通用应用程序中使用既共享又特定于视图的代码
- KMP算法 —— next 数组的应用 --- 前缀中最小循环节,最大重复次数
- BMP、JPEG、PNG、GIF格式总结
- vb.net SplitContainer控件增加自动拆分的小箭头
- JSP中利用JFreechart生成图表
- hdu2955 dp
- 【随想_1】重新面临抉择
- 图结构练习——最小生成树
- codeforces 567C Geometric Progression
- 需要这样一个记事本-14 ReportViewer在多页报表情况下,每页都显示表格列表头
- Android布局之 android:gravity和android:layout_gravity区别与联系
- gcc 使用
- Windows的CMD窗口EDKII编译基础
- 默认选中ext:GridPanel第一行数据