P1281 書的複製 dp

2021-08-02 07:54:25 字數 873 閱讀 2410

紀念一下,這是我自己第乙個自己想出轉移方程的dp題!

先定義一下陣列,f[i][j]表示第i個人,抄了j本書花的最短時間。

w[i][j]表示[i,j]閉區間內,從第i本書抄到第j本書用的時間;

轉移方程:f[h][i]=min(f[h][i],max(f[h-1][j],w[j+1][i])); (1<=i<=m,1<=j<=i-1)

求出最小花費時間後,題目要求輸出方案,且讓後面的人盡量多抄。

用貪心就可以了,從後面開始,只要當前這個人時間不到最佳時間,就一直讓他抄,就可以了。

#include

#include

#include

#include

#define m 2000000000

using

namespace

std;

int f[501][501];

int m,k,a[501];

int w[501][501],l[501],r[501];

int main()

f[1][i]=w[1][i];

}for(int h=2;h<=k;h++)}}

int p=f[k][m],ll=m;

for(int i=k;i>=1;i--)//貪心一下

l[i]=ll+1;

r[i]=rr;

}for(int i=1;i<=k;i++)

printf("%d %d\n",l[i],r[i]);

return

0;}

P1281 書的複製 DP

原題鏈結 和之前的統計單詞個數十分類似 將前面的分為兩部分 一部分是前面的人抄的 剩下的是自己抄的 取max 和原時間取min include include include include include include include include include include includ...

P1281 書的複製

先說下題意吧,題面給的題意我都看不懂 有 n 本書,每本書有乙個頁數 a i 每個人能寫連續的幾本書,他們寫書的速度可以認為是1頁1天。求讓 k 個人抄完這 n 本書的最短時間。ps k 個人抄書的時間是其中抄的最慢的人用的時間。dp的狀態非常容易想 dp i j 表示前 i 本書,用 j 個人抄的...

dp 洛谷P1281 書的複製

本來以為水題,後來炸了 dp方程這個直接想總不難把 毫無優化的暴力轉移 但是最後輸出方案的時候,不可以按照dp的方案輸出的 因為dp它的方案是讓子節點數值最優 這樣的方案是是不可以保證總的方案最優的 所以要最後貪心輸出答案 就是後面的人經可能的取 include define ll long lon...