題目大意:給定一張有向圖,每條邊都有乙個容量c和乙個擴容費用w。這裡擴容費用是指將容量擴大1所需的費用。
求: 1.在不擴容的情況下,1到n的最大流; 2.將1到n的最大流增加k所需的最小費用。
題解:先跑最大流,在殘餘網路上跑費用流
卡點:無
c++ code:
#include#include#include#define maxn 5010using namespace std;
const int inf=0x3f3f3f3f;
int n,m,k;
int u[5010],v[5010],w[5010],c[5010];
int d[maxn],pre[maxn];
int q[maxn],h,t;
int st=1,ed;
int head[maxn],cnt=2;
struct edgee[5010<<2];
bool vis[maxn];
char ch;
void read(int &x)
inline int min(int a,int b)
}} }
return d[ed]!=inf;
}int update()
void mcmf()
int main()
P2604 ZJOI2010 網路擴容
給定一張有向圖,每條邊都有乙個容量c和乙個擴容費用w。這裡擴容費用是指將容量擴大1所需的費用。求 1 在不擴容的情況下,1到n的最大流 2 將1到n的最大流增加k所需的最小擴容費用。輸入檔案的第一行包含三個整數n,m,k,表示有向圖的點數 邊數以及所需要增加的流量。接下來的m行每行包含四個整數u,v...
洛谷P2602 ZJOI2010 數字計數 題解
很裸的一道數字dp的板子 定義f 當前列舉到的數字 當前數字之前的答案 列舉的數字 其它的套板子就可以了,要注意一下字首0的判斷 1 include2 include3 include4 include5 include6 include7 using namespace std 8 typedef...
洛谷 P2607 ZJOI2008 騎士
給出一幅有n個點,n條邊的無向未必聯通圖,每乙個點有乙個權並與另外乙個點相連,對其中一些點進行染色,且相鄰兩點的顏色不能都染,則最大的染色點權值和是多少.這題和 洛谷p1453城市環路 很像,區別就在於它不是連通圖.因而可以先用並查集和vector進行分塊,易證每一塊都是比樹多一條邊的連通圖,每一塊...