1 solutions

  • 0
    @ 2025-11-5 17:26:18

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    long long num[201][21];
    long long f[201];
    int n,m,a,b,i,j,k,nums=0;
    void zhi(int m,int a,int b)
    {
        long long x;
        long long i,j;
        for(i=1;i<=n;i++)
        {
            x=1;
            for(j=1;j<=b;j++)
    		{
    			x=x*i;
    		}
            num[i][m]=a*x;
        }
    }
    int main()
    {
    	scanf("%d%d",&n,&m);    
        for(i=1;i<=m;i++)
    	{
    		f[i]=0x7ffffffffffffff;
    	}
        f[1]=0;
        for(i=1;i<=m;i++)
        {
            scanf("%d%d",&a,&b);
            zhi(i,a,b);
        }
        for(i=1;i<=n;i++)
    	{
    		f[i]=num[i][1];
    	}
        for(i=2;i<=m;i++)//循环课题数
        {
            for(j=n;j>=1;j--)//循环容量
            {
                for(k=j-1;k>=0;k--)//循环数
                {
    				if(f[j]>f[k]+num[j-k][i])
    				{
    					f[j]=f[k]+num[j-k][i];
    				}
                }
            }
        }
    	cout<<f[n]<<endl;
    }
    
    • 1

    Information

    ID
    18432
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By