题目链接:点击打开链接
和poj2599差不多的题目,就是要把递推关系要转化为求最小拿不到offer的概率。
#include <iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=1e5;
double p[maxn],dp[maxn];
int a[maxn];
int main()
{
int m,n,i,j;
while(~scanf("%d %d",&m,&n)&&(m||n))
{
for(i=1;i<=n;i++)
scanf("%d %lf",&a[i],&p[i]);
for(i=0;i<=m;i++)dp[i]=1;
for(i=1;i<=n;i++)
for(j=m;j>=a[i];j--)
dp[j]=min(dp[j],dp[j-a[i]]*(1-p[i]));
printf("%.1lf%%\n",100*(1-dp[m]));
}
return 0;
}