日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 2255 奔小康赚大钱 带权二分图匹配 KM算法

發布時間:2024/10/6 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 2255 奔小康赚大钱 带权二分图匹配 KM算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

奔小康賺大錢

Time Limit: 1000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 13984????Accepted Submission(s): 6102

Problem Description

傳說在遙遠的地方有一個非常富裕的村落,有一天,村長決定進行制度改革:重新分配房子。
這可是一件大事,關系到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住(如果有老百姓沒房子住的話,容易引起不安定因素),每家必須分配到一間房子且只能得到一間房子。
另一方面,村長和另外的村領導希望得到最大的效益,這樣村里的機構才會有錢.由于老百姓都比較富裕,他們都能對每一間房子在他們的經濟范圍內出一定的價格,比如有3間房子,一家老百姓可以對第一間出10萬,對第2間出2萬,對第3間出20萬.(當然是在他們的經濟范圍內).現在這個問題就是村領導怎樣分配房子才能使收入最大.(村民即使有錢購買一間房子但不一定能買到,要看村領導分配的).

?Input

輸入數據包含多組測試用例,每組數據的第一行輸入n,表示房子的數量(也是老百姓家的數量),接下來有n行,每行n個數表示第i個村名對第j間房出的價格(n<=300)。

?Output

請對每組數據輸出最大的收入值,每組的輸出占一行。
?

Sample Input

2 100 10 15 23

Sample Output

123

Source

HDOJ 2008 Summer Exercise(4)- Buffet Dinner

?Recommend

lcy

分析:

KM算法就是在匈牙利算法的基礎上加了權值的束縛,為了達到權值和最大或者最小,就不能簡單的去算邊數

1.首先找到所有居民愿意花錢最多的那個房子,同時調節 lx,ly數組,使得權值和最大,或者當要松弛的時候,使得本來最大的矛盾權值和,盡可能的損失少一些,來得到滿足條件的最大權值和

2.在 lx[x]+ly[y]=w[x][y]條件下進行匈牙利算法,既可以讓居民住他花錢最多的房子,又可以在多居民搶一個房子的時候,用它來得到該居民到其他房子的松弛量(即該居民到其它房子 比 到這個用錢最多的房子 愿意花的錢數上差的值。)

那么我們就要把 發生矛盾的居民到 其它房子的松弛量 ?的最小值求出來。再用它去松弛,就可以讓原本矛盾的最大權值和,損失最小而得到滿足條件的最大權值和!

對于每個居民有4個基本問題:

1.這個房子訪問過沒有?

2.這個房子能不能滿足他的條件

3.這個房子是否被別人住了

4.被別人住了能不能得到調配

//HDU2255 #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define maxn 310 #define INF 0x3f3f3f3f #define clr(x) memset(x,0,sizeof(x)) int w[maxn][maxn];//w[i][j]表示i到j的權值 int lx[maxn],ly[maxn];//同時調節兩個數組,使得權值和最大 int n; //n1,n2為二分圖的頂點集,其中x屬于n1,y屬于n2 //link記錄n2中的點y在n1中所匹配的x點的編號 int link[maxn]; int slack[maxn];//松弛操作 int visx[maxn],visy[maxn]; bool dfs(int x) {visx[x]=1;//得到發生矛盾的居民集合//對于這個居民,每個房子都試一下,找到就退出for(int y=1;y<=n;y++){if(visy[y]) continue;//不需要重復訪問int t=lx[x]+ly[y]-w[x][y];//這個條件下使用匈牙利算法if(t==0)//標志這個房子可以給這個居民{visy[y]=1; //這個房子沒人住或者可以讓住著個房子的人去找另外的房子住if(link[y]==0||dfs(link[y])){link[y]=x;return 1;//可以讓這位居民住進來}}else if(slack[y]>t)//否則這個房子不能給這位居民slack[y]=t;}return 0; } int KM() {clr(lx);clr(ly);clr(link);//首先把每個居民出的錢最多的那個房子給他for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(lx[i]<w[i][j])lx[i]=w[i][j];//在滿足上述條件之后,給第i位居民分配房子for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)slack[j]=INF;//松弛量while(1)//直到給這個居民找到房子為止{clr(visx);clr(visy);if(dfs(i)) break;//找到房子,就跳出循環int d=INF;for(int k=1;k<=n;k++)if(!visy[k]&&d>slack[k])d=slack[k];//找到最小松弛量for(int k=1;k<=n;k++)//松弛操作,使發生矛盾的居民有更多選擇{if(visx[k]) lx[k]-=d;//將矛盾居民的要求降低,使發生矛盾的居民有更多if(visy[k]) ly[k]+=d;//使發生矛盾的房子在下一個子圖,保持矛盾}}}int ans=0;for(int i=1;i<=n;i++)ans+=w[link[i]][i];return ans; } int main() {while(~scanf("%d",&n)){clr(w);//每個案例都重置為0for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&w[i][j]);//輸入每條邊的權值printf("%d\n",KM());}return 0; }

?

總結

以上是生活随笔為你收集整理的HDU 2255 奔小康赚大钱 带权二分图匹配 KM算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费不卡毛片 | 国产又粗又猛又黄又爽无遮挡 | 中文幕无线码中文字蜜桃 | 娇妻第一次尝试交换的后果 | 日本福利视频一区 | 欧美亚洲在线视频 | 中文字幕av第一页 | cao久久| 亚洲av无码一区二区三区人妖 | 91国偷自产中文字幕久久 | 久久久视频6r | 在线观看中文 | 天天综合网站 | 亚洲精品国产精品乱码不99 | 国产又爽又黄免费软件 | 久久99久久99精品免视看婷婷 | 法国空姐电影在线观看 | 亚洲天堂伊人网 | 色在线播放 | 久久久久性 | 日韩欧美在线免费观看 | 91超碰国产在线 | 毛片在线视频观看 | 自拍偷拍欧美激情 | 波多野结衣av在线免费观看 | 中文字幕国产日韩 | 琪琪色视频 | 免费在线观看黄色网址 | 黄色网视频 | 国产精品视频导航 | 色婷婷久 | 69日本xxxxxxxxx30 在线波多野结衣 | 男人日女人逼 | 久久久久青草 | 337p日本欧洲亚洲大胆张筱雨 | 欧美日韩一区二区视频在线观看 | 色一情一区二区三区四区 | 重口另类 | 欧美日视频 | 久久爱网 | 九一国产在线 | 国产区福利 | 国产精品一二三 | 久久久久无码精品国产 | 成人短视频在线播放 | 97精品人妻一区二区三区 | a∨鲁丝一区鲁丝二区鲁丝三区 | 男女搞网站 | 久热色 | 福利午夜视频 | 日日爱av | 欧美激情一区二区三区四区 | 免费看黄色的网址 | 欧美群交射精内射颜射潮喷 | 日韩在线视频你懂的 | 男人添女人下部高潮视频 | 最新超碰 | 成人美女免费网站视频 | 国产一级啪啪 | 日本免费精品视频 | 国产女优在线播放 | 波多野久久 | 怡红院av久久久久久久 | 国产一区二区三区亚洲 | 欧美久久久久久 | ass极品水嫩小美女ass | 日韩视频免费观看高清完整版 | 久久色av | 伊人一区二区三区 | 女人扒开屁股让我添 | 吻胸摸激情床激烈视频 | 亚洲av无码乱码国产精品 | 成人理论片 | 亚洲区视频在线观看 | 丰满人妻一区二区三区四区 | 亚洲精品人妻无码 | 丰满人妻熟妇乱偷人无码 | 女女高潮h冰块play失禁百合 | 国产少女免费观看高清 | 欧美 日韩 国产 成人 | 国产在线观看一区二区三区 | 国产成人精品无码免费看在线 | 黄色小视频免费观看 | 伊人久久狼人 | 野花视频在线观看免费 | 公侵犯一区二区三区四区中文字幕 | 绝顶高潮合集videos | 亚洲免费一级 | av观看国产 | 久久久视频在线观看 | 国产精品啊啊啊 | 天天爽视频 | 欧美在线中文字幕 | 肌肉猛男裸体gay网站免费 | 荡女精品导航 | 久久久com | 免费不卡视频 | 国产中文久久 | 精品久久久久久久久久久久 |