博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】2955 Robberies
阅读量:6312 次
发布时间:2019-06-22

本文共 1121 字,大约阅读时间需要 3 分钟。

01背包。将最大金额作为容量v。概率做乘法。

1 #include 
2 #include
3 4 #define mymax(a, b) (a>b) ? a:b 5 6 float dp[10005]; 7 int mon[105]; 8 float fs[105]; 9 10 int main() {11 int case_n;12 float ff, f;13 int m, v;14 int i, j;15 16 scanf("%d", &case_n);17 18 while (case_n--) {19 scanf("%f %d", &ff, &m);20 v = 0;21 for (i=1; i<=m; ++i) {22 scanf("%d %f", &mon[i], &fs[i]);23 fs[i] = 1 - fs[i];24 v += mon[i];25 }26 ff = 1 - ff;27 memset(dp, 0, sizeof(dp));28 dp[0] = 1;29 for (i=1; i<=m; ++i) {30 for (j=v; j>=mon[i]; --j) {31 dp[j] = mymax(dp[j], dp[j-mon[i]]*fs[i]);32 }33 /*34 for (j=0; j<=v; ++j) {35 printf("%f ", dp[j]);36 }37 printf("\n");38 */39 }40 for (i=v; i>0; --i)41 if (dp[i] >= ff)42 break;43 printf("%d\n", i);44 }45 46 return 0;47 }

 

转载于:https://www.cnblogs.com/bombe1013/p/3756534.html

你可能感兴趣的文章
Java反射简介
查看>>
react脚手架应用以及iview安装
查看>>
shell学习之用户管理和文件属性
查看>>
day8--socket网络编程进阶
查看>>
node mysql模块写入中文字符时的乱码问题
查看>>
仍需"敬请期待"的微信沃卡
查看>>
分析Ajax爬取今日头条街拍美图
查看>>
内存分布简视图
查看>>
POJ 2918 求解数独
查看>>
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>
011 指针的算术运算
查看>>
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>
java-学习8
查看>>
AOP动态代理
查看>>
Oracle序列
查看>>