Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
67575 | 梅煦洋 | 最小乘车费用 | C++ | 运行出错 | 0 | 0 MS | 240 KB | 543 | 2023-01-14 15:57:33 |
#include<bits/stdc++.h> using namespace std; long long dp[10000]={0},yuan[11]; int n; int kk(int res,int nb){ if(nb==1&&res!=0){ if(dp[0]==0) dp[0]=dp[res]+yuan[1]*res; else dp[0]=min(dp[0],dp[res]+yuan[1]*res); kk(0,0); } if(res==0) return 0; for(int i=0;i<=res/nb;i++){ if(dp[res-nb*i]==0) dp[res-nb*i]=dp[res]+yuan[nb]*i; else dp[res-nb*i]=min(dp[res-nb*i],dp[res]+yuan[nb]*i); kk(res-nb*i,nb-1); } } int main(){ for(int i=1;i<=10;i++){ cin>>yuan[i]; } cin>>n; kk(n,10); cout<<dp[0]<<endl; }