亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2195(1) km.cpp

?? 各種算法
?? CPP
字號:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
int HCount, MCount;
struct Pos
{
	int x;
	int y;
};
struct Pos* Man[SIZE];
struct Pos* House[SIZE];

int Weight[SIZE][SIZE];
int XSize, YSize;
int dog[SIZE], god[SIZE];
bool chart[SIZE][SIZE];

template<class T>
inline T Abs(T a)
{
if (a < 0)
   return (-a);
return a;
}

bool findBestMatch()
{
	int i, j, k;
	int X[SIZE], Y[SIZE];
	for (i = 0; i < XSize; ++i){
	   for(j = 0; j < YSize; ++j){
			if (j == 0)  X[i] = Weight[i][j];
			else
			X[i] = (X[i] > Weight[i][j] ? X[i]:Weight[i][j]);
	   }
	   dog[i] = -1;
	}
	for (i = 0; i < YSize; ++i){
	   Y[i] = 0;
	   god[i] = -1;
	}
	k = 0;
	while (k < XSize){
		while (dog[k] == -1){
			for (i = 0; i < XSize; ++i){//初始化等式子圖,其實只需初始x~y(x屬于S,y屬于 Y - t)
				for (j = 0; j < YSize; ++j){
					if (X[i] + Y[j] == Weight[i][j])
						chart[i][j] = true;
					else
						chart[i][j] = false;
				}
			}
			int queue[SIZE], Begin = 0, End = 0;//建立一個隊列,end前為己匹配,后為未匹配
			int trace[SIZE];
			for (i = 0; i < YSize; ++i){//Pick k to S:(trace),初始化T為空
				queue[i] = i;
l1:				if (chart[k][queue[i]]){
					trace[queue[i]] = k;
					j = queue[i]; queue[i] = queue[End]; queue[End++] = j;
				}
				else trace[i] = -1;
			}					//queue[End]前為有匹配的yi
			while (Begin < End){//找增廣路BFS
l2:				if (god[queue[Begin]] == -1) break;  //X(k) 的鄰接點{yi}己被先前結點X(i<k)匹配  最關鍵的一步
				for (i = End; i < YSize; ++i){//x(k)搶占{yi},并為X(i<k)重選搭檔,從End后的{y}中選取,即從未匹配集{yi}的點中選
l3:					if (chart[ god[ queue[Begin]] ][queue[i]]){
						trace[queue[i]] = god[queue[Begin]];	//按原路擴充交錯路 M -> M',保存在trace
						j = queue[i]; queue[i] = queue[End]; queue[End++] = j;	//X(i<k)重配了End后的{y}中的Yj,則End++,讓Yj加入{yi},即加入己匹配隊列,避免被重用
					}
				}
				++Begin;
			}
l4:			if (Begin < End){//找到增廣路
				i = queue[Begin];
l5:				while (trace[i] != k){//如果X(k)的直接Y(i)還沒被匹配則不用回溯,否則回溯重構匹配圖
					god[i] = trace[i];
					j = dog[god[i]]; dog[god[i]] = i; i = j; 
				}
				god[i] = k;
				dog[k] = i; 
			}
			else{//d = min{l(x)+l(y)-w(x,y) | x 屬于 S,y 屬于 T,即x,Y - {y}屬于 M'}
				if (End == YSize)  break;
				int min;
				for (i = End; i < YSize; ++i){
					int d = X[k] + Y[queue[i]] - Weight[k][queue[i]];
					if (i == End || min > d) min = d;
				}
				for (i = 0; i < End; ++i){//在BFS搜索時就可邊記錄min
					for (j = End; j < YSize; ++j){
					int d = X[ god[queue[i]] ] + Y[queue[j]] - Weight[ god[queue[i]] ][queue[j]];
						if (min > d) min = d;
					}
				}
				for (i = 0; i < End; ++i){//修改頂標
					X[ god[queue[i]] ] -= min;
					Y[queue[i]] += min;
				}
					X[k] -= min;
			}//找不到增廣路,降低X(屬于S)的頂標,加入新的y 點
		}//while (dog[k] == -1)
		if (dog[k] == -1) return false;
		++k;
	}//while (k < XSize)
	return true;
}

int search()//在abs()前加負號和返回負sum,是求最小權值完美匹配
{
	XSize = MCount;
	YSize = HCount;
	int i, j;
	for (i = 0; i < XSize; ++i)
	   for (j = 0; j < YSize; ++j)
		Weight[i][j] = -Abs(House[j]->x - Man[i]->x) - Abs(House[j]->y - Man[i]->y);
	int sum = 0;
	if (findBestMatch()){
	   for (i = 0; i < XSize; ++i)
		sum += Weight[i][dog[i]];
	}
	return -sum;//返回最小值sum的相反數為最大
}
int main()
{
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	int i, j, m, n;
	char ch;
	for (i = 0; i < SIZE; ++i){
	   Man[i] = (struct Pos*)malloc(sizeof(struct Pos));
	   House[i] = (struct Pos*)malloc(sizeof(struct Pos));
	}
	while (scanf("%d %d", &n, &m), n){
		HCount = 0;
		MCount = 0;
		for (i = 0; i < n; ++i){
			for (j = 0; j < m; ++j){
				scanf(" %c", &ch);
				if (ch == 'H'){
					House[HCount]->x = i;
					House[HCount]->y = j;
					++HCount;     
				}
				else if (ch == 'm'){
					Man[MCount]->x = i;
					Man[MCount]->y = j;
					++MCount;
				}    
			}
		}
		printf("%d\n", search());
	}
	for (i = 0; i < SIZE; ++i){
		free(Man[i]);
		free(House[i]);
	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色噜噜狠狠| 日韩欧美亚洲另类制服综合在线| 亚洲激情五月婷婷| 欧美一级日韩免费不卡| 国产一区二区伦理片| 亚洲人吸女人奶水| 337p亚洲精品色噜噜| 午夜成人在线视频| 国产日韩欧美高清在线| 在线视频一区二区免费| 精品一区二区三区久久| 久久精子c满五个校花| 成人高清视频免费观看| 水蜜桃久久夜色精品一区的特点| 欧美极品美女视频| 欧美亚洲一区二区在线观看| 黑人精品欧美一区二区蜜桃| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品18久久久久久久久| 亚洲免费观看高清完整版在线| 欧美一级搡bbbb搡bbbb| 99精品热视频| 精品亚洲免费视频| 亚洲综合丁香婷婷六月香| 精品粉嫩超白一线天av| 欧美性三三影院| 成人a级免费电影| 国内精品在线播放| 视频一区中文字幕| 欧美大片在线观看| 91黄色激情网站| 丰满岳乱妇一区二区三区| 婷婷开心激情综合| 综合精品久久久| 久久色在线视频| 51精品秘密在线观看| 色久综合一二码| 亚洲国产一区二区在线播放| 国产精品福利一区二区| 久久亚洲一级片| 日韩欧美在线不卡| 欧美日韩精品电影| 色综合久久88色综合天天6| 国产精品乡下勾搭老头1| 亚洲线精品一区二区三区八戒| 国产精品水嫩水嫩| 久久五月婷婷丁香社区| 日韩久久久精品| 欧美剧在线免费观看网站| 在线视频你懂得一区| 99久久综合狠狠综合久久| 国产在线精品视频| 激情六月婷婷久久| 国精产品一区一区三区mba桃花| 免费在线观看一区| 日韩精品一二三| 日韩成人免费在线| 日本亚洲一区二区| 日本美女一区二区| 亚洲丰满少妇videoshd| 亚洲成人自拍网| 亚洲二区在线视频| 日韩电影免费一区| 麻豆国产91在线播放| 免费成人美女在线观看| 日韩国产一二三区| 毛片基地黄久久久久久天堂| 麻豆国产精品官网| 狠狠狠色丁香婷婷综合激情| 国产激情视频一区二区三区欧美| 国产精品亚洲第一区在线暖暖韩国| 国产美女av一区二区三区| 久久99久久99| 国产精品一卡二| av中文字幕一区| 色狠狠一区二区| 欧美色男人天堂| 日韩欧美的一区| 国产女主播在线一区二区| 国产精品久久久久久亚洲伦 | 欧美国产禁国产网站cc| 国产精品国产三级国产三级人妇| 中文字幕一区二区不卡| 怡红院av一区二区三区| 夜夜夜精品看看| 久久66热偷产精品| 成人深夜在线观看| 在线精品视频一区二区三四| 欧美一区二区三区影视| 欧美激情中文字幕一区二区| 亚洲色图另类专区| 亚洲国产精品一区二区久久| 蜜臀久久99精品久久久久久9| 国产精品99久久久久| 色综合色综合色综合色综合色综合 | 中文字幕不卡三区| 亚洲日本va在线观看| 亚洲欧美福利一区二区| 另类调教123区| 福利电影一区二区| 成人激情免费电影网址| 精品视频一区三区九区| 精品国产成人系列| 亚洲另类春色国产| 久久国产福利国产秒拍| 99免费精品在线| 欧美视频完全免费看| 26uuu成人网一区二区三区| 亚洲人精品一区| 九九视频精品免费| 色一情一伦一子一伦一区| 91 com成人网| 国产精品国产三级国产专播品爱网| 婷婷国产在线综合| 成人黄色片在线观看| 91精品黄色片免费大全| 国产精品久久久久久久久免费丝袜| 五月激情综合网| 91视频.com| 26uuu欧美日本| 午夜欧美视频在线观看| 粉嫩欧美一区二区三区高清影视| 正在播放亚洲一区| 亚洲欧美日韩国产中文在线| 精品综合久久久久久8888| 欧美午夜在线观看| 国产精品国产三级国产有无不卡 | 欧美日韩国产首页| 一区二区高清在线| 色偷偷一区二区三区| 中文字幕不卡的av| 高清久久久久久| 久久久噜噜噜久久人人看| 久久成人久久爱| 欧美一级黄色录像| 日韩电影在线一区| 欧美人妇做爰xxxⅹ性高电影| 亚洲成人一区在线| 欧美体内she精高潮| 亚洲激情成人在线| 日本韩国一区二区三区| 洋洋av久久久久久久一区| 在线这里只有精品| 亚洲成人av电影| 欧美精品高清视频| 青青草原综合久久大伊人精品优势| 欧美视频三区在线播放| 午夜电影网亚洲视频| 91精品啪在线观看国产60岁| 麻豆传媒一区二区三区| 日韩美女视频一区二区在线观看| 久久国产精品色婷婷| 精品国产1区二区| 国产成人亚洲精品狼色在线| 自拍偷自拍亚洲精品播放| 91视频观看视频| 亚洲综合一区二区三区| 欧美日韩精品一区二区天天拍小说 | 中文字幕免费在线观看视频一区| 成人aa视频在线观看| 亚洲乱码中文字幕| 欧美系列日韩一区| 免费高清不卡av| 国产免费观看久久| 91亚洲午夜精品久久久久久| 亚洲激情校园春色| 91精品久久久久久蜜臀| 精品一区二区三区在线观看国产| 久久久久久久久久久久久女国产乱 | 九九国产精品视频| 欧美国产激情二区三区| 91黄色激情网站| 美国精品在线观看| 日本一二三四高清不卡| 色噜噜夜夜夜综合网| 日韩激情av在线| 国产日韩视频一区二区三区| 97精品久久久午夜一区二区三区 | 中文成人av在线| 狠狠网亚洲精品| 日韩美女久久久| 91麻豆精品国产91久久久资源速度 | 亚洲精品美国一| 日韩欧美高清一区| 白白色亚洲国产精品| 偷拍日韩校园综合在线| 久久久噜噜噜久噜久久综合| 色999日韩国产欧美一区二区| 蜜桃在线一区二区三区| 国产精品欧美一区二区三区| 欧美理论在线播放| 成人小视频在线| 婷婷中文字幕综合| 国产精品久久久久国产精品日日| 在线成人免费视频| 99久久国产综合精品女不卡| 七七婷婷婷婷精品国产| 中文字幕一区二区三区视频| 日韩欧美国产麻豆| 欧美吻胸吃奶大尺度电影|