洛谷 P1130 紅牌

2022-04-06 06:55:38 字數 1303 閱讀 1416

某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當複雜 ,一共包括n個步驟。每一步驟都由**的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快程序,每一步**都派了m個工作人員來檢查材料。不幸的是,並不是每乙個工作人員效率都很高。儘管如此,為了體現「公開**」的政策,**部門把每乙個工作人員的處理乙個申請所花天數都對外界公開。

為了防止所有申請人都到效率高的工作人員去申請。這m*n個工作人員被分成m個小組。每一組在每一步都有乙個工作人員。申請人可以選擇任意乙個小組也可以更換小組。但是更換小組是很嚴格的,一定要相鄰兩個步驟之間來更換,而不能在某一步驟已經開始但還沒結束的時候提出更換,並且也只能從原來的小組i更換到小組i+1,當然從小組m可以更換到小組1。對更換小組的次數沒有限制。

例如:下面是3個小組,每個小組4個步驟工作天數:

小組1 2 6 1 8

小組2 3 6 2 6

小組3 4 2 3 6

例子中,可以選擇小組1來完成整個過程一共花了2+6+1+8=17天,也可以從小組2開始第一步,然後第二步更換到小組3,第三步到小組1,第四步再到小組2,這樣一共花了3+2+1+6=12天。你可以發現沒有比這樣效率更高的選擇。

你的任務是求出完成申請所花最少天數。

輸入格式:

輸入檔案red.in的第一行是兩個正整數n和m,表示步數和小組數。接下來有m行,每行n個非負整數,第i+1(1<=i<=m)行的第j個數表示小組i完成第j步所花的天數,天數都不超過1000000。

輸出格式:

輸入檔案red.out僅包括1個正整數,為完成所有步所需最少天數。。

輸入樣例#1: 複製

4 3 

2 6 1 8

3 6 2 6

4 2 3 6

輸出樣例#1: 複製

12

【資料規模與約定】

對於100%的資料,有n ≤ 2000, m ≤ 2000。

思路:dp.

f[i][j]表示第i次選第j個小組。

#include#include

#include

#include

using

namespace

std;

int n,m,ans=0x7f7f7f7f

;int f[2010][2010

];int map[2010][2010

];int

main()

for(int i=1;i<=m;i++) ans=min(ans,f[n][i]);

cout

<}

洛谷P1130紅牌(簡單DP)

某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當複雜 一共包括nnn個步驟。每一步驟都由 的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快程序,每一步 都派了mmm個工作人員來檢查材料。不幸的是,並不是每乙個工作人員效率都很高。儘管如此,為了體現 公開 的政策,部門把每...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...