其實與今天做的強連通那倒模板題一樣,**不能完全理解,到學會了如何判斷是否能用km模板來做,而且也學會了套用km模板來ac了,但是原理卻還是不太清楚,果然還是要繼續慢慢想明白才行啊,先貼出模板吧,明天再做一下km,繼續理解下去。
**:
#include#include#include#includeusing namespace std;#define clr(arr, what) memset(arr, what, sizeof(arr))
#define maxn 305
#define inf (1<<30)-1
int g[maxn][maxn];
int lx[maxn],ly[maxn],match[maxn];
bool visx[maxn],visy[maxn];
int slack[maxn];
int n,m;
bool dfs(int cur)
}else if(slack[y]>t)
}return false;
}int km()
for(int x=1;x<=n;x++)
for(int i=1;i<=n;i++)
for(int i=1;i<=m;i++)}}
int result = 0;
for(int i = 1; i <=m; i++)
if(match[i]!=-1)
result += g[match[i]][i];
return result;
}int main()
/*for(int i=1;i<=n;i++)
*/printf("%d\n",km());
}return 0;
}
HDU2255二分匹配最大權值
傳說在遙遠的地方有乙個非常富裕的村落,有一天,村長決定進行制度改革 重新分配房子。這可是一件大事,關係到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一間房子。另一方面,村長和另外的村領導希望...
hdu 2255 奔小康賺大錢 最大權匹配KM
傳說在遙遠的地方有乙個非常富裕的村落,有一天,村長決定進行制度改革 重新分配房子。這可是一件大事,關係到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一間房子。另一方面,村長和另外的村領導希望...
hdu2255 奔小康賺大錢,最大權匹配,KM演算法
點選開啟鏈結 最大權匹配 km演算法 演算法步驟 設頂點xi的頂標為a i 頂點yi的頂標為b i 初始時。a i 為與xi相關聯的邊的最大權值。b j 0。保證a i b j w i,j 成立 當相等子圖中不包括完備匹配時,就適當改動頂標以擴大相等子圖,直到找到完備匹配為止 改動頂標的方法 當從x...