课题选择

http://icpc.upc.edu.cn/problem.php?id=11308

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
ll n,m,i,j,k,l,f,x,y,dp[1000],c[1000][1000];
int main() {
    scanf("%d%d",&n,&m);
    for (i=1; i<=m; i++) {
        scanf("%d%d",&x,&y);
        for (j=1; j<=n; j++) {
            f=1;
            for (k=1; k<=y; k++)
                f*=j;
            c[i][j]=x*f;
        }
    }
    memset(dp,0x3f,sizeof(dp));
    dp[0]=0;
    for (i=1; i<=m; i++) {
        for (j=n; j>=0; j--)
            for (k=1; k<=j; k++)
                dp[j]=min(dp[j],dp[j-k]+c[i][k]);
    }
    printf("%lld\n",dp[n]);
}

猜你喜欢

转载自blog.csdn.net/weixin_43601103/article/details/88376209