最佳課題選擇

2022-05-11 01:26:29 字數 1197 閱讀 4739

時間限制: 1 sec  記憶體限制: 128 mb

matrix67要在下個月交給老師n篇**,**的內容可以從m個課題中選擇。由於課題數有限,matrix67不得不重複選擇一些課題。完成不同課題的**所花的時間不同。具體地說,對於某個課題i,若matrix67計畫一共寫x篇**,則完成該課題的**總共需要花費ai*x^bi個單位時間(係數ai和指數bi均為正整數)。給定與每乙個課題相對應的ai和bi的值,請幫助matrix67計算出如何選擇**的課題使得他可以花費最少的時間完成這n篇**。

第一行有兩個用空格隔開的正整數n和m,分別代表需要完成的**數和可供選擇的課題數。

以下m行每行有兩個用空格隔開的正整數。其中,第i行的兩個數分別代表與第i個課題相對應的時間係數ai和指數bi。

對於30%的資料,n< =10,m< =5;

對於100%的資料,n< =200,m< =20,ai< =100,bi< =5。

輸出完成n篇**所需要耗費的最少時間。

10 3

2 11 2

2 119

樣例說明:

題解:

一道很水的dp,f[i][j]表示選前i種**完成j篇的最少時間。

g[i][j]為預處理出的在第i種**上寫j篇所需要的時間。

f[i][j]=min(f[i][j],f[i-1][k]+g[i][j-k]);

事實上如果追求效率的話可以降成一維的,當然還可以用快速冪優化。

二維**如下:

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

intn,m;

long

long f[21][201],g[21][201],a[21],b[21

];int

main()

}for(i=2;i<=m;i++)}}

cout

}

Vijos P1198 最佳課題選擇

matrix67要在下個月交給老師n篇 的內容可以從m個課題中選擇。由於課題數有限,matrix67不得不重複選擇一些課題。完成不同課題的 所花的時間不同。具體地說,對於某個課題i,若matrix67計畫一共寫x篇 則完成該課題的 總共需要花費ai x bi個單位時間 係數ai和指數bi均為正整數 ...

vijos 1198 最佳課題選擇

matrix67要在下個月交給老師n篇 的內容可以從m個課題中選擇。由於課題數有限,matrix67不得不重複選擇一些課題。完成不同課題的 所花的時間不同。具體地說,對於某個課題i,若matrix67計畫一共寫x篇 則完成該課題的 總共需要花費ai x bi個單位時間 係數ai和指數bi均為正整數 ...

分組揹包 最佳課題選擇

題目描述 matrix67要在下個月交給老師n篇 的內容可以從m個課題中選擇。由於課題數有限,matrix67不得不重複選擇一些課題。完成不同課題的 所花的時間不同。具體地說,對於某個課題i,若matrix67計畫一共寫x篇 則完成該課題的 總共需要花費ai xbi個單位時間 係數ai和指數bi均為...