洛谷P2050 美食節

2022-04-30 10:00:09 字數 1219 閱讀 1629

修車加強版。發現每個廚師拆成p個點太浪費了,畢竟總共用到的才p個點。於是從下往上乙個乙個加,加到滿流就停。

論動態加點費用流的正確姿勢......

我自己加總是出現負環...我是每次加一整層,然後跑完這一層再加下一層,這樣會顯而易見的出現負環......

然後我們發現如果每增廣一流量就加邊就不會出現這種毒瘤現象,因為每次加的一定比增廣的劣......

注意一定要動態開點,不能只用乙個點代表廚師。否則可能出現廚師的第一次給了多個菜的情況...

1 #include 2

3const

int n = 100010, inf = 0x7f7f7f7f;4

5struct

edge

13 }edge[5000010]; int tp = 1;14

15int

e[n], lm, now[n], pre[n], flow[n], p[n], cnt[n], d[n];

16int val[110][110

];17

bool

vis[n];

18 std::queueq;

1920 inline void add(int x, int y, int z, int

w) 27

28 inline bool spfa(int s, int

t) 49}50

}51}52

return d[t]

5455 inline void update(int s, int

t) 63

return;64

}6566int

main()

78for(int i = 1; i <= n; i++) 82}

83///

sol84

for(int i = 1; i <= m; i++) 91}

9293

int ans = 0;94

while

(tot)

108break

;109

}110

}111

112 printf("

%d\n

", ans);

113return0;

114 }

ac**

洛谷P2050 NOI2012 美食節

題目 輸入格式 輸入檔案的第1行包含兩個正整數n和m,表示菜品的種數和廚師的數量。第2行包含n個正整數,其中第i個數為pi,表示點第i種菜品的人數。接下來有n行,每行包含m個非負整數,這n行中的第i行的第j個數為ti,j,表示第j個廚師製作第i種菜品所需的時間。輸入檔案中每行相鄰的兩個數之間均由乙個...

洛谷 P6772 美食家

noi 簽到題我都不會哦 題意見洛谷。以下用 k 表示 k 以避免與迭代變數衝突 首先有個很顯然的 dp dp 表示第 i 天小 w 在城市 j 的情況下獲得的最大愉悅值之和。邊界 dp beginc 1 i 1 infty i neq1 end 目標 dp 狀態轉移方程 dp max c j ex...

洛谷P5049 洛谷P5022 題解 旅行

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