```cpp
//尴尬,我的
#include<iostream>
using namespace std;
long long a[30],b[30];
long long f[205][30];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>a[i]>>b[i];
for(int i=0;i<=m;i++)
for(int j=1;j<=n;j++)
f[i][j]=99999999;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int k=0;k<=i;k++)
{
long long q=1;
for(int ii=1;ii<=b[j];ii++)
q*=k;
f[j][i]=min(f[j][i],f[j-1][i-k]+a[j]*q);
}
}
}
cout<<f[m][n];
}
```
by daks @ 2017-11-04 09:22:10
自己解答
我和题解的f数组含义不同
by daks @ 2017-11-04 09:32:49