洛谷P4043 支線劇情

2022-04-30 11:33:12 字數 1065 閱讀 4690

題意:給定dag,通過每條邊需要時間。

從某號點回到1號點不需要時間。

從1號點出發,求最少要多久才能走完所有邊。

解:有源匯有上下界最小費用可行流。

直接連邊,費用為時間,下界為1,無上界。

每個點都可能是終點,往t連邊。

1 #include 2 #include 3 #include 4 #include 5

6const

int n = 310, m = 1000010, inf = 0x3f3f3f3f;7

8struct

edge edge[m << 1]; int top = 1;11

12int

e[n], d[n], vis[n], pre[n], flow[n], ot[n];

13 std::queueq;

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

w) 31

32 inline bool spfa(int s, int

t) 52}53

}54}55

return d[t]

5758 inline void update(int s, int

t) 66

return;67

}6869 inline int solve(int s, int t, int &cost)

77return

ans;78}

7980

intmain()

94 add(i, t, inf, 0

);95}96

for(int i = 1; i <= n; i++)

100else

103}

104 add(t, 1, inf, 0

);105

intans;

106solve(ss, tt, ans);

107 printf("

%d", ans +cost);

108return0;

109 }

ac**

洛谷P4043 費用流

這題的建圖方式可以模擬洛谷p1251 我是由那個題才想到這麼建的,由於每條邊至少經過一次,我們又不清楚需要跑多少次,把邊看成點,點與匯點相連,可是我們又不知道最大流應該是多少,直接這麼連會發生錯誤。利用那道題的思想,每條邊最少需要一次,那麼就每條邊看做兩個點,點1和點2,點1有1的流量流向匯點,點2...

BZOJ 3876 支線劇情

支線劇情 故事背景 宅男jyy非常喜歡玩rpg遊戲,比如仙劍,軒轅劍等等。不過jyy喜歡的並不是戰鬥場景,而是類似電視劇集一般的充滿恩怨情仇的劇情。這些遊戲往往都有很多的支線劇情,現在jyy想花費最少的時間看完所有的支線劇情。問題描述 jyy現在所玩的rpg遊戲中,一共有n個劇情點,由1到n編號,第...

數字DP BZOJ 3876 支線劇情

輸入一行包含乙個正整數n。接下來n行,第i行為i號劇情點的資訊 第乙個整數為,接下來個整數對,bij和tij,表示從劇情點i可以前往劇 情點,並且 這段支線劇情需要花費的時間。輸出一行包含乙個整數,表示jyy看完所有支線劇情所需要的最少時間。6 2 2 1 3 2 2 4 3 5 4 2 5 5 6...