HDU 2255 奔小康賺大錢 KM

2021-06-22 07:45:54 字數 1342 閱讀 6448

裸km。

#include #include #include using namespace std;

const int max_n = 300 + 30;

const int inf = 0x3f3f3f3f;

int n_x, n_y;//兩邊的點數

int g[max_n][max_n];//二分圖權值

int link[max_n], l_x[max_n], l_y[max_n];//y中各店匹配的狀態, x,y,中的點標號

int slack[max_n];

bool vis_x[max_n], vis_y[max_n];

bool dfs(int x)

}else if(slack[y] > temp)

slack[y] = temp;

}return false;

}int km()

for(int x = 0; x < n_x; x++)}}

int res = 0;

for(int i = 0; i < n_y; i++)

if(link[i] != -1)

res += g[link[i]][i];

return res;

}int main()

return 0;

}

#include #include #include #include using namespace std;

const int maxn = 300 + 10;

const int inf = 0x3f3f3f3f;

int n;

int w[maxn][maxn];

int lx[maxn], ly[maxn]; // 頂標

int left[maxn]; // left[i]為右邊第i個點的匹配點編號

bool s[maxn], t[maxn]; // s[i]和t[i]為左/右第i個點是否已標記

bool match(int i)

} return false;

}void update()

}void km()

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

}}int main()

}km(); // 最大權匹配

int ans = 0;

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

ans += w[left[i]][i];

printf("%d\n", ans);

} return 0;

}

HDU 2255 奔小康賺大錢 KM

傳說在遙遠的地方有乙個非常富裕的村落,有一天,村長決定進行制度改革 重新分配房子。這可是一件大事,關係到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一間房子。另一方面,村長和另外的村領導希望...

hdu2255 奔小康賺大錢(KM)

problem description 傳說在遙遠的地方有乙個非常富裕的村落,有一天,村長決定進行制度改革 重新分配房子。這可是一件大事,關係到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一...

hdu2255 奔小康賺大錢(KM)

problem description 傳說在遙遠的地方有乙個非常富裕的村落,有一天,村長決定進行制度改革 重新分配房子。這可是一件大事,關係到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一...