詳細解析解題過程
dp[i][j]表示前i節課題寫j篇**花費的最少時間
for(int i=0;i<=20;i++)
for(int j=0;j<=200;j++)dp[i][j]=inf;
//先初始化為inf
for(int i=0;i<=m;i++)dp[i][0]=0;
for(int i=1;i<=m;i++)//前i節課程
for(int j=1;j<=n;j++)//寫了j篇**
for(int k=0;k<=j;k++)//第i節課程寫了k篇
dp[i][j]=min(dp[i][j],dp[i-1][j-k]+(ll)(a[i]*pow(k,b[i])));
dp[m][n]
完整**:
#includeusing namespace std;
typedef long long ll;
int n,m;
ll a[30],b[30];
ll dp[30][250];
inline int read()
return tot;
}int main()}}
cout
}
P1336 最佳課題選擇
題意 給出我們需要學的科目數,給出m種不同的科目,n m 即可以學的科目數小於我們需要學的科目數,也就是說我們需要多次學同一門科目 計算學習某門科目的時間為 求如何學習才能讓時間最低 思路 給出dp i j 表示選擇前i種科目學習j次所花最少時間 1 include2 using namespace...
luogu P1336 最佳課題選擇 揹包dp
題目描述 matrix67要在下個月交給老師n篇 的內容可以從m個課題中選擇。由於課題數有限,matrix67不得不重複選擇一些課題。完成不同課題的 所花的時間不同。具體地說,對於某個課題i,若matrix67計畫一共寫x篇 則完成該課題的 總共需要花費ai x bi個單位時間 係數ai和指數bi均...
題解 洛谷 P1311 選擇客棧(遞推)
方法一 暴力列舉第乙個客棧 第二個客棧以及兩個客棧之間的客棧,尋找合法的條件,答案 理論上也就30分吧,結果60分。貼一下 include include include includeusing namespace std const int maxn 200010 int a maxn p ma...