p2725 Stamps

背包。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#include <stack>
#include <bitset>
#define mkp make_pair
using namespace std;
const double EPS=1e-8;
typedef long long lon;
const lon SZ=2000030,INF=0x7FFFFFFF,mod=9901;
int dp[SZ],arr[SZ];

int main()
{
    std::ios::sync_with_stdio(0);
    //freopen("d:\\1.txt","r",stdin);
    lon casenum;
    //cin>>casenum;
    //for(lon time=1;time<=casenum;++time)
    {
        int k,n;
        cin>>k>>n;
        for(int i=1;i<=n;++i)cin>>arr[i];
        for(int i=0;i<SZ;++i)dp[i]=INF;
        dp[0]=0;
        for(int i=1;i<=n;++i)
        {
            for(int j=1;j<=SZ;++j)
            {
                if(j>=arr[i]&&dp[j-arr[i]]!=INF)
                {
                    dp[j]=min(dp[j],dp[j-arr[i]]+1);
                }
            }
        }
        int res=0;
        for(int i=1;i<SZ;++i)
        {
            //cout<<i<<endl;
            if(dp[i]>k)
            {
                cout<<i-1<<endl;
                return 0;
            }
        }
    }
    return 0;
}

 

posted @ 2018-10-22 10:42  degvx  阅读(171)  评论(0)    收藏  举报