#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<queue>
#define min(x, y) (x) < (y) ? (x) : (y)
using namespace std;
int n, m, a[10002];
double b[10002];
double dp[10002];
int main()
{
while (cin>>n>>m,n|m)//好吧。。。n|m 条件居然忘了写。。导致wa &_&...
{
for (int i = 1; i <= m; i++)
cin>>a[i]>>b[i];
for (int i = 0; i <= n; i++)
dp[i] = 1;
for (int i = 1; i <= m; ++i)
{
for (int j = n; j >= a[i]; --j)
{
dp[j] = min(dp[j], dp[j-a[i]]*(1-b[i]));
}
}
printf("%.1lf%%\n", (1-dp[n])*100);
}
}hdu 1203 I NEED A OFFER!
最新推荐文章于 2020-07-04 11:57:11 发布
本文通过一个具体的C++程序实例介绍了如何使用动态规划解决一类特定的问题。该程序运用了标准C++库中的多种数据结构和算法,并定义了一个自定义的最小值选择宏来优化计算过程。

6万+

被折叠的 条评论
为什么被折叠?



