zoj 2676 網路流 01分數規劃

2022-05-22 07:36:09 字數 1456 閱讀 6370

思路:

這題的結論得要看amber的**,結論就是將求f(x)/b(x)最小轉化為求min(f(x)-b(x)*λ),其中x為s集的解空間,f(x)為解的邊權和,b(x)為解的邊數,

λ=f(x)/b(x)。λ*為最優解,當且僅當(x屬於s)∑min(f(x)-b(x)*λ)==0;故可以將原邊權的權值改為w-λ;對λ進行二分列舉,找出答案。

#include#include

#include

#include

#include

#define n 510

#define m 50010

#define inf 1e9

using

namespace

std;

const

double eps=1e-9

;struct

edgeedge[m];

intindex[n],d[n],gap[n],e,vi[n];

void addedge(int

from,int to,double

val)

intsource,des,n,m;

void dfs(int

u)double dfs(int pos,double

flow)

if(d[v]//

找出與pos相連的點的最小標號

} }

if(lv==flow)//

沒有找到增廣路勁,進行標號更新

return flow-lv;

}double sap(int st,int

de)

return

ans;

}void

init()

intmain()

double

l,r;

l=lmin,r=rmax;

double res=0

;

while(r-l>eps)

res+=sap(1

,n);

if(res>0

) l=mid;

else

r=mid;

}init();

for(i=0;i)

sap(

1,n);

//coutcout); vector

ans;

for(i=0;i)

}int temp=ans.size();

printf(

"%d\n

",temp);

printf("%d

",ans[0

]);

for(i=1;i)

printf("%d

",ans[i]);

printf("\n

");}

return0;

}

(二分 網路流)Optimal Milking

題意為n個奶牛站,m頭奶牛,每個奶牛站的奶牛上限k 給出奶牛站和奶牛對其他實體的距離,距離為0即為兩個實體無路徑,求出所有奶牛到奶牛站中走的最遠的奶牛的最遠距離的最小值 最大中的最小問題,可以二分。我們先用floyd處理出實體到實體之間的最近距離,二分這個最遠距離,建圖 兩實體距離小於等於二分值時才...

2021 網路流初步

首先是一些概念,容量,流量,飽和弧,非飽和弧,零弧,非零弧,增廣路,殘量,殘量網路 這個方法的時間複雜度比較差 為 一直bfs找增廣路,直到找不到演算法結束,每次找到後,修改正向邊和反向邊的邊權即可 includeusing namespace std int n,m,s,t const int i...

HCIA01 網路基礎

硬體方面 通過介質將網路裝置和終端連線起來。軟體方面 作業系統,應用軟體,應用程式互相通訊。目的 實現資源共享,資訊傳遞。計算機網路的定義 一組自治計算機互聯的集合。裝置 device 介質 media 訊息 報文 message data 協議 protocol 傳送方 資訊源 sender so...