1.1023
2.
Problem W
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 118 Accepted Submission(s) : 42
Input
Output
Sample Input
10 3 4 0.1 4 0.2 5 0.3 0 0
Sample Output
44.0% <div style='font-family:Times New Roman;font-size:14px;background-color:F4FBFF;border:#B7CBFF 1px dashed;padding:6px'><div style='font-family:Arial;font-weight:bold;color:#7CA9ED;border-bottom:#B7CBFF 1px dashed'><i>Hint</i></div> You should use printf("%%") to print a '%'. </div>
3.本题中要求speakless至少要得到一份offer,算出其中的最大概率
4.把题目转化成算一个offer都没有得到的概率,采用dp的方法计算,算出结果后直接用1减去最小
5.#include<stdio.h>
double dp[10005],p[10005];
int a[10005];
int main()
{
int n,i,j,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(m==0&&n==0)
break;
for(i=0;i<m;i++)
{
scanf("%d%lf",&a[i],&p[i]);
p[i]=1-p[i]; //不能录取 }
for(i=0;i<=n;i++)
dp[i]=1.0; //初始化为1
for(i=0;i<m;i++)
for(j=n;j>=a[i];j--)
if(dp[j]>dp[j-a[i]]*p[i])
dp[j]=dp[j-a[i]]*p[i];
printf("%.1lf%%\n",(1-dp[n])*100);
}
return 0;
}