DP问题
#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
int n, m;
int i,j;
int w[10002];
double P[10002];
double v[10002];
while(scanf("%d%d",&m,&n)!=EOF)
{
if(n==0&&m==0)break;
memset(P,0,sizeof(P));
for(i=0; i<n; i++)
{
scanf("%d%lf",&w[i],&v[i]);
}
for(i=0; i<n; i++)
for(j=m; j>=w[i]; j--)
{
if(1-(1-P[j-w[i]])*(1-v[i])>P[j])
P[j] =1-(1-P[j-w[i]])*(1-v[i]);
}
printf("%.1lf%%\n",P[m]*100.00);
}
return 0;
}