题目链接:登录 - 沐枫OJ
思路:完全背包问题的变形
我的思路:
#include<bits/stdc++.h>
using namespace std;
int dp[1001];
int n;
int main(){
memset(dp,0x3f3f3f3f,sizeof dp);
for(int i=1;i<=10;i++){
cin >> dp[i];
}
cin >> n;
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
dp[i] = min(dp[i],dp[j]+dp[i-j]);
}
}
cout << dp[n];
return 0;
}
和老师的差不多,而且我觉得我这个简单一点点
老师思路:
//完全背包:一维数组方法
#include <iostream>
#include <cstring> //memset
using namespace std;
int w[17],c[17],dp[107]; //0x3F3F3F3F 无穷大
int main(){
memset(dp, 0x3F,sizeof dp); //头文件<cstring>
dp[0] = 0;
for(int i