https://vjudge.net/problem/HDU-2955

概率是浮点数,只能做值(而且这里是累乘,也不能化成整数),这里注意要化成安全概率(1-p[i]),求安全概率的最大值。

钱数作二层循环,最后用max取满足概率条件的最大值(再化回被抓概率)。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1
#define IO ios::sync_with_stdio(false);cin.tie(0);
#define INF 1e9
typedef long long ll;
using namespace std;
int t, n, m[];
double P, p[], dp[];
int main()
{
IO;
cin >> t;
while(t--){
cin >> P >> n;
int sum = ;
memset(dp, , sizeof(dp));
for(int i = ; i < n; i++){
cin >> m[i] >> p[i];
sum += m[i];
}
dp[] = ;//只要dp[0]=1即可,不是全置1
for(int i = ; i < n; i++){
for(int j = sum; j >= m[i]; j--){
dp[j] = max(dp[j], dp[j-m[i]]*(-p[i]));
}
}
int maxm=-INF;
for(int i = ; i <= sum; i++){
if(-dp[i] <= P){
maxm = max(i, maxm);//用max界定最大值最方便
}
}
cout << maxm << endl;
}
return ;
}

最新文章

  1. strsep和strtok_r替代strtok
  2. Java 导出EXCEL
  3. Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)
  4. JAVA包命名规范
  5. Lua垃圾收集
  6. 数据库水平拆分和垂直拆分区别(以mysql为例)
  7. C51 库函数(2)
  8. Jpa规范中persistence.xml 配置文件解析
  9. linux中find批量删除空文件及空文件夹
  10. JAVA虚拟机内存模型
  11. SpringMVC中使用bean来接收form表单提交的参数时的注意点
  12. linux优化之系统参数调优篇
  13. 20165206 2017-2018-2 《Java程序设计》第9周学习总结
  14. java-学习1
  15. python爬虫 (一) 爬虫基础了解,urllib
  16. 重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化
  17. Quick 3.3 final 加载ccs的变化
  18. 【原】C++11并行计算 &mdash; 数组求和
  19. eclipse——执行Maven命令
  20. leetcode N-Queens I &amp;&amp; N-Queens II

热门文章

  1. (6).NET CORE微服务 Micro-Service ---- AOP框架
  2. linux shell基本知识
  3. 【AtCoder】ARC072
  4. mysql配置完半同步复制之后报错[ERROR] The server quit without updating PID file
  5. Linux CA证书与https讲解
  6. Linux read line
  7. Codeforces 873E Awards For Contestants ST表
  8. day21 模块 异常处理
  9. FZU 2254 英语考试 (最小生成树)
  10. POJ 2455 Secret Milking Machine 【二分】+【最大流】