在我眼中的你
年華美麗
盛開如詩
//這題的精度比較高,所以要調轉一下思路。以偷到最多的錢爲揹包最大容量,求出不被抓的概率
//題意給的是被抓的概率P,所以不被抓的概率就是1-P
//幼稚園的老師告訴我們被抓的事件是獨立的所以,f[l]=max(f[l],f[l-a[k].C]*a[k].M);
//這裏是都不被抓的概率
//不過這題要注意精度
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
struct
{
int C;
float M;
}a[10005];
float max(float a,float b)
{
if(a>b)return a;
else return b;
}
int i,j,k,l,N,n,sum;
float Q;
int main()
{
cin>>n;
while(n--)
{
cin>>Q>>N;
Q=1-Q;
sum=0;
for(j=0;j<N;j++)
{
cin>>a[j].C>>a[j].M;
a[j].M=1-a[j].M;
sum=sum+a[j].C;
}
float f[10005]={1.0};
for(k=0;k<N;k++)
{
for(l=sum;l>=a[k].C;l--)
{
f[l]=max(f[l],f[l-a[k].C]*a[k].M);
}
}
for(i=sum;i>=0;i--)
{
if(f[i]-Q>0.000000001)
{
cout<<i<<endl;
break;
}
}
}
return 0;
}