分析:用dp[i][j]來表示前i個人分j本書所需的最短時間
我們可以利用第三層u來實現狀態轉移,u用來表示前i-1人抄寫的最後一本書
狀態轉移方程式為:dp[i][j]=min(dp[i][j],max(dp[i-1][u-1],sum[j]-sum[u-1])) sum陣列為字首和陣列
#includeusingnamespace
std;
typedef
long
long
ll;const
int inf=1
<<30
;const ll maxn=510
;const
double pi=acos(-1
);const
int mod=10000
;int
a[maxn],sum[maxn];
intdp[maxn][maxn];
void print(int x,int
ans)
}}int
main()
for(int i=1;i<=m;i++)
for(int i=2;i<=k;i++)}}
//coutreturn0;
}
書的複製 normal DP
time limit 1000ms memory limit 65536k total submit 164 accepted 83 description 現在要把m mm本有順序的書分給k kk個人複製 抄寫 每個人的抄寫速度都一樣,一本書不允許分給兩個或兩個以上的人抄寫,分給每個人的書,必須是...
書的複製 題解
現在要把m本有順序的書分給k個人複製 抄寫 每個人的抄寫速度都一樣,一本書不允許分給兩個或兩個以上的人抄寫,分給每個人的書,必須是連續的,比如不能把第 一 第三 第四本書給同乙個人抄寫。現在請你設計一種方案,使得複製時間最短。複製時間為抄寫最多的人用去的時間。第一行兩個整數,m,k k m 500 ...
貪心和動規的difference
很多同學在做動規題的時候,很容易做成貪心,的確,動規和貪心是很相近的,在很多時候,動規和貪心沒有明顯的界限,反而在很多時候,我們需要使用貪心的思想,對動規進行優化,不過這也就導致了很多同學分不清什麼題是動規,什麼題是貪心。現在我們來回憶一下,動規的思想是什麼,以前乙個或者多個狀態的最優值,加上現在這...