時間限制: 1 s
空間限制: 128000 kb
題目等級 : 大師 master
題目描述 description
在幻想鄉,河城荷取是擅長高科技工業的河童。荷取的得意之作除了光學迷彩外,還有震動整個幻想鄉的巨型人形『非想天則』。不過由於人形太過巨大,所以為它充能是一件很麻煩的事。人形一共有n個電能池,編號1..n。其中前l個電能池(即編號為1..l的電能池)連線著外部充能介面,而編號為n的電能池連線著動力爐核心。在n個蓄能池之間有m條單向管道,每條管道有乙個啟用代價cost和電能傳輸極限limit。當啟用度達到某個值時,所以啟用代價小於等於這個值的管道都會被啟用,但是每一條管道只能夠最多傳送limit個單位的電能。外部介面到電能池和電能池到動力爐核心的管道傳輸沒有限制並且啟用代價為0。現在荷取想往動力爐核心輸入至少k個單位的電能,求需要的最小啟用度。
輸入描述 input description
第1行:4個正整數n,m,l, k
第2..m行:4個整數,u,v,limit,cost,表示一條由u到v的管道,傳輸極限limit,啟用代價為cost
輸出描述 output description
第1行:1個整數,表示最小啟用代價
樣例輸入 sample input
6 5 3 3
1 4 2 4
2 4 3 5
3 5 4 2
4 6 2 3
5 6 3 4
樣例輸出 sample output
資料範圍及提示 data size & hint
資料範圍
對於30%的資料:1 ≤ l ≤ n ≤ 100,0 ≤ m ≤ 2,000,1 ≤ cost ≤ 10,000
對於60%的資料:1 ≤ l ≤ n ≤ 1,000,0 ≤ m ≤ 20,000,1 ≤ cost ≤ 10,000
對於100%的資料:1 ≤ l ≤ n ≤ 2,000,0 ≤ m ≤ 80,000,1 ≤ cost ≤ 1,000,000
對於100%的資料:1 ≤ limit ≤ 1,000
提示樣例解釋:
當啟用度為4時,除了(2,4)外其他管道都能夠使用。此時能夠輸入恰好4個單位電能。具體如下:
(1,4) 輸送2個單位電力
(4,6) 輸送2個單位電力
(3,5) 輸送2個單位電力
(5,6) 輸送2個單位電力
注意:保證任意(u,v)都只出現一次。
二分代價+網路流dinic驗證。
屠龍寶刀點選就送
#include #include#include
#define inf 0x7ffffff
#define m 80005
#define n 2005
using
namespace
std;
void read(int &x)
struct
edge
}edge[m
<<1
];int s,t,u[m],v[m],lim[m],cost[m],n,m,l,k,dep[n],head[n<<1],cnt=1
;void insert(int u,int v,int
w)void build(int
x) }
for(int i=1;i<=l;i++)
}bool
bfs()}}
if(dep[t]>0) return
true
;
else
return
false;}
int dfs(int now,int t,int
came_flow)
}if(rest==0) dep[now]=inf;
return
rest;
}int
dinic()
intmain()
int l=-1,r=1000000
;
while(r-l>1
)
printf("%d
",r);
return0;
}
142 猴子報數
猴子報數 n個猴子圍坐一圈並按照順時針方向從1到n編號,從第s個猴子開始進行1到m的報數,報數到第m的猴子退出報數,從緊挨它的下乙個猴子重新開始1到m的報數,如此進行下去知道所有的猴子都退出為止。求給出這n個猴子的退出的順序表。輸入有做組測試資料 每一組資料有兩行,第一行輸入n 表示猴子的總數最多為...
演算法導論14 2
本小節介紹了擴充套件資料結構的抽象過程,同時證明了乙個定理 選擇一種基礎資料結構 確定基礎資料結構中要維護的附加資訊 檢驗基礎資料結構上的基本修改操作能否維護附加資訊 設計一些新的操作來應用附加資訊 設 f 是 n 個節點的紅黑樹 t 擴張的屬性,且假設對任一節點 x f 的值僅依賴於節點 x,x....
142 字首統計 AcWing
原題鏈結 trie的基本運用 錯誤思路 將要查詢字首的字串構建字典樹,這樣的結果是每個字串都要重新構建一次樹,並且我們需要預先儲存要匹配字首的單詞,但題目單詞數目沒有講明,所以我們必須將建樹的字串互換.這樣建樹會導致mle 正解思路 將字首建樹,如果達到乙個結點有單詞就 1,如果沒有單詞就跳出 易錯...