I NEED A OFFER!

来源:互联网 发布:钟无艳国语网络歌手 编辑:程序博客网 时间:2024/05/20 09:45

题目地址

思路:背包的入门题

背包讲解

#include <cstdio>#include <cstring>#include <iostream>#include <string>#include <cmath>#define ll long longusing namespace std;const int maxn = 1e4 + 5;int n, m, feiyong[maxn];double jilv[maxn], dp[maxn];int main(){    while(scanf("%d%d", &n, &m) != EOF && (n || m))    {          for(int i = 0; i < m; i++)          {                scanf("%d%lf", &feiyong[i], &jilv[i]);                jilv[i] = 1 - jilv[i];          }          for(int i = 0; i <= n; i++)          {                dp[i] = 1.0;          }          for(int i = 0; i < m; i++)          {                for(int j = n;j >= feiyong[i]; j--)                {                      dp[j] = min(dp[j], dp[j-feiyong[i]]*jilv[i]);                }          }          double out = (1 - dp[n]) * 100;          printf("%.1lf%%\n", out);    }    return 0;}


原创粉丝点击