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

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

?? 1697.cpp

?? heu暑期集訓中講到的一些ACM/ICPC培訓內容
?? CPP
字號:
#include <iostream.h>
#include <string.h>

const MAXN = 100;
const MAXV = 100000000;
int danger[MAXN][MAXN], map[MAXN][MAXN], rc[MAXN * MAXN * 2], dis[MAXN*MAXN]
	, pos[MAXN*MAXN];
int m, n, s0, t0, s, t;

void calcdanger()
{
	int i, j, x, y;

	t = 0;
	memset(danger, 0, sizeof(danger));
	for (i = 0; i <= n; i++)
		for (j = 0; j <= m; j++)
		if (map[i][j] || map[i+1][j] || map[i][j+1] || map[i+1][j+1])
		{
			danger[i][j] = 1;
			rc[++t] = i * (m+1) + j;
		}
	s = 1;
	while (s <= t)
	{
		x = rc[s] / (m+1); y = rc[s] % (m+1);
		if (x > 0 && !danger[x-1][y])
		{
			danger[x-1][y] = danger[x][y]+1;
			rc[++t] = rc[s]-m-1;
		}
		if (y > 0 && !danger[x][y-1])
		{
			danger[x][y-1] = danger[x][y]+1;
			rc[++t] = rc[s]-1;
		}
		if (x < n && !danger[x+1][y])
		{
			danger[x+1][y] = danger[x][y]+1;
			rc[++t] = rc[s]+m+1;
		}
		if (y < m && !danger[x][y+1])
		{
			danger[x][y+1] = danger[x][y]+1;
			rc[++t] = rc[s]+1;
		}
		s++;
	}
	for (i = 0; i <= n; i++)
		for (j = 0; j <= n; j++) 
			danger[i][j] = m+n+1-danger[i][j];
}

int getHead()
{
	int a, i, j, x;

	a = rc[1];
	x = rc[t--];
	i = 1;
	while (i * 2 <= t)
	{
		j = i * 2;
		if (j + 1 <= t && dis[rc[j]] > dis[rc[j+1]]) j = j + 1;
		if (dis[rc[j]] < dis[x])
		{
			rc[i] = rc[j]; pos[rc[i]] = i;
			i = j;
		}
		else break;
	}
	rc[i] = x; pos[x] = i;
	return a;

}

void add(int node)
{
	int x;
	if (pos[node] == 0)
	{
		rc[++t] = node; pos[node] = t;
	}
	x = pos[node];
	while (x > 1)
	{
		if (dis[rc[x/2]] > dis[node])
		{
			rc[x] = rc[x/2]; pos[rc[x]] = x;
			x = x / 2;
		}
		else break;
	}
	rc[x] = node; pos[node] = x;
}

void calcdis()
{
	int i, a, x, y;

	memset(pos, 0, sizeof(pos));
	for (i = 0; i <= (m+1)*(n+1); i++) dis[i] = MAXV;
	dis[s0] = danger[s0/(m+1)][s0%(m+1)];
	rc[t = 1] = s0; pos[s0] = 1;
	while (t > 0)
	{
		a = getHead();
		if (a == t0) break;
		x = a/(m+1); y = a%(m+1);
		if (x > 0 && (!map[x][y] || !map[x][y+1])
			 && dis[a-m-1] > danger[x-1][y]+dis[a])
		{
			dis[a-m-1] = danger[x-1][y]+dis[a];
			add(a-m-1);
		}
		if (y > 0 && (!map[x][y] || !map[x+1][y])
			 && dis[a-1] > danger[x][y-1]+dis[a])
		{
			dis[a-1] = danger[x][y-1]+dis[a];
			add(a-1);
		}
		if (x < n && (!map[x+1][y] || !map[x+1][y+1])
			 && dis[a+m+1] > danger[x+1][y]+dis[a])
		{
			dis[a+m+1] = danger[x+1][y]+dis[a];
			add(a+m+1);
		}
		if (y < m && (!map[x][y+1] || !map[x+1][y+1])
			 && dis[a+1] > danger[x][y+1]+dis[a])
		{
			dis[a+1] = danger[x][y+1]+dis[a];
			add(a+1);
		}
	}
	if (dis[t0] < MAXV) cout << dis[t0] << endl;
		else cout << "no solution" << endl;
}

void main()
{
	int i, j, test, c, r;
	char ch;

	cin >> test;
	while (test-- > 0)
	{
		cin >> n >> m;
		cin >> c >> r;
		s0 = c * (m + 1) + r;
		cin >> c >> r;
		t0 = c * (m + 1) + r;

		memset(map, 0, sizeof(map));
		for (i = 1; i <= n; i++)
			for (j = 1; j <= m; j++)
			{
				cin >> ch;
				map[i][j] = ch - '0';
			}

		calcdanger();
		calcdis();		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区日韩二区欧美三区| 欧美国产精品一区二区| 亚洲福利一区二区三区| 91国在线观看| 亚洲一区二区三区四区在线观看| 日本精品免费观看高清观看| 亚洲手机成人高清视频| 欧美又粗又大又爽| 日韩av网站免费在线| 日韩欧美一区二区免费| 国产一区二区三区四| 国产精品电影一区二区三区| 91电影在线观看| 日韩国产精品久久| 久久久久久久久久久99999| 日韩欧美资源站| 国产一区二区毛片| 中文字幕一区二区日韩精品绯色| 欧美主播一区二区三区美女| 日产国产欧美视频一区精品 | 成人高清视频在线观看| 亚洲色图视频免费播放| 欧美日韩国产电影| 国产一区不卡视频| 亚洲美女免费视频| 日韩一卡二卡三卡| 成人高清视频免费观看| 日韩高清不卡一区| 中文字幕电影一区| 欧美日本免费一区二区三区| 国产真实乱对白精彩久久| 亚洲精品国产第一综合99久久| 在线播放91灌醉迷j高跟美女| 韩国三级在线一区| 亚洲尤物视频在线| 久久久久久毛片| 欧美日韩成人综合| youjizz久久| 久久精品国产亚洲aⅴ| 亚洲视频网在线直播| 日韩免费高清av| 欧美午夜精品久久久久久超碰| 欧美一区二区三区免费在线看| 国产成人av网站| 日日夜夜免费精品| 亚洲人成网站影音先锋播放| 日韩欧美一级精品久久| 欧美在线小视频| 粉嫩在线一区二区三区视频| 蜜臀av性久久久久蜜臀av麻豆| 亚洲视频免费在线| 久久久www成人免费无遮挡大片| 欧美色综合影院| 91麻豆蜜桃一区二区三区| 狠狠色丁香久久婷婷综合丁香| 亚洲成人动漫一区| 亚洲精品大片www| 中文字幕一区二| 国产欧美日本一区二区三区| 日韩一区二区免费视频| 欧美精选午夜久久久乱码6080| 91在线国内视频| 丁香婷婷综合网| 国产成人精品免费在线| 国产精品一区二区三区网站| 久久99国产精品免费网站| 日韩高清国产一区在线| 午夜精品久久久久久久蜜桃app| 亚洲男人的天堂网| 亚洲人成亚洲人成在线观看图片| 国产精品久久久久一区二区三区 | 中文字幕一区二区三区不卡在线| 久久久噜噜噜久噜久久综合| 日韩欧美不卡一区| 日韩精品最新网址| 日韩女优电影在线观看| 日韩欧美一区二区视频| 欧美大片一区二区| 精品国产91九色蝌蚪| 精品乱码亚洲一区二区不卡| 欧美videos中文字幕| 久久综合999| 久久九九全国免费| 欧美激情一区二区三区四区 | www.欧美日韩国产在线| 成人高清视频免费观看| 91视频在线观看免费| 色综合久久中文综合久久97 | 在线电影院国产精品| 欧美老女人第四色| 在线播放国产精品二区一二区四区 | 欧美老肥妇做.爰bbww| 欧美福利视频一区| 欧美变态tickle挠乳网站| 久久伊99综合婷婷久久伊| 久久综合九色综合欧美98| 久久九九全国免费| 中文字幕综合网| 亚洲一二三区视频在线观看| 欧美午夜寂寞影院| 日韩一区二区在线观看视频| 26uuu欧美| 国产精品美女一区二区| 亚洲欧美日韩综合aⅴ视频| 依依成人精品视频| 欧美aaaaa成人免费观看视频| 久久成人精品无人区| 大胆欧美人体老妇| 欧美三片在线视频观看| 日韩精品影音先锋| 国产精品久久精品日日| 亚洲国产aⅴ天堂久久| 久久精品国产成人一区二区三区| 国产精品911| 一本久久a久久精品亚洲| 91精品福利在线一区二区三区 | 一区二区视频在线| 免费看欧美女人艹b| 国产成a人亚洲精| 欧美亚洲日本国产| xnxx国产精品| 亚洲色图视频免费播放| 久久精品国产亚洲a| 91美女视频网站| 精品区一区二区| 亚洲黄网站在线观看| 国产一区二区三区久久久 | 宅男在线国产精品| 国产精品麻豆欧美日韩ww| 午夜精品久久久久久久| 成人理论电影网| 欧美tickling网站挠脚心| 亚洲女同一区二区| 国产成人精品三级| 日韩精品一区国产麻豆| 亚洲一区二区三区四区五区中文 | 一本一道久久a久久精品综合蜜臀| 日韩一区二区三区视频在线| 综合久久一区二区三区| 国精产品一区一区三区mba视频| 欧美日韩精品系列| 最近日韩中文字幕| 国产成人亚洲综合a∨婷婷图片| 欧美日韩国产综合视频在线观看| 国产精品美女久久久久久久久 | 夜夜精品视频一区二区| 成人精品国产福利| 欧美电视剧免费观看| 性做久久久久久久久| 91在线码无精品| 国产精品欧美极品| 国产成a人亚洲| 久久久精品免费网站| 麻豆国产精品一区二区三区 | 久久综合久久鬼色中文字| 五月婷婷激情综合网| 欧美亚洲国产bt| 椎名由奈av一区二区三区| youjizz国产精品| 国产精品色噜噜| 懂色av一区二区三区免费看| 久久综合五月天婷婷伊人| 乱中年女人伦av一区二区| 欧美理论片在线| 日韩电影免费在线| 精品视频一区三区九区| 亚洲一区二区在线视频| 在线观看91精品国产入口| 亚洲激情自拍偷拍| 在线日韩国产精品| 香蕉影视欧美成人| 9191成人精品久久| 老司机免费视频一区二区 | 欧美日韩在线三级| 图片区小说区国产精品视频| 欧美色电影在线| 日韩国产精品久久| 久久综合久久鬼色| 国产成人av一区二区三区在线| 国产女同性恋一区二区| 成人av电影免费在线播放| 亚洲日本在线观看| 欧美日韩国产片| 日本欧美久久久久免费播放网| 日韩美女在线视频 | 亚洲黄色尤物视频| 欧美剧情电影在线观看完整版免费励志电影| 欧美精品一卡两卡| 久久草av在线| 中文字幕亚洲一区二区va在线| 色婷婷综合久久久| 偷窥少妇高潮呻吟av久久免费| 日韩美女视频在线| 成人精品电影在线观看| 亚洲成av人片一区二区三区| 欧美大胆一级视频| 91在线小视频| 免费成人在线观看| 国产精品久久久久久久久果冻传媒 | 久久久久久综合|