#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>
#include <stack>
#include <queue>
#include <list>
#include <cmath>
using namespace std;
#define cir(a,b) memset(a,b,sizeof a)
typedef long long LL;
const int maxn = 100000+10;
const int INF = 1e9+10;
int n,m;
double w[maxn];
int v[maxn];
double dp[maxn];
int main()
{
while (cin >> n >> m )
{
if(m==0&&n==0) break;
cir(w,0);
cir(v,0);
cir(dp,0);
for(int i=0;i<=n;i++)
dp[i] = 1;
for(int i=0;i<m;i++)
{
cin >> v[i] >> w[i];
w[i] = 1-w[i];
}
for(int i=0;i<m;i++)
{
for(int j=n;j>=v[i];j--)
{
dp[j] = min(dp[j],dp[j-v[i]]*w[i]);
}
}
printf("%.1f%%\n",(1.0-dp[n])*100);
}
return 0;
}
HDU1203(01)
最新推荐文章于 2019-09-24 13:51:13 发布