#include <iostream>
#include <string.h>
#include <cmath>
#define ll long long
using namespace std;
int n,m,a,b,dp[10004];
int main()
{
cin>>n>>m;
memset(dp,12,sizeof(dp));
dp[0]=0;
for(int i=1;i<=m;++i)
{
int a,b;
cin>>a>>b;
for(int j=n;j>=1;--j)
{
for(int k=j;k>=1;--k)
{
ll p=pow(k,b);
if(dp[j]>dp[j-k]+a*p)dp[j]=dp[j-k]+a*p;
else dp[j]=dp[j];
}
}
}
cout<<dp[n];
return 0;
}
开了一维dp数组 WA #10