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

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

?? a_10818.cpp

?? UVa ACM 10818 Accepted Code
?? CPP
字號:
#include<cstdio>#include<cstring>#include<cstdlib>#include<queue>#define size 12using namespace std;typedef struct{	int r;	int c;}Position;typedef struct{	char path[256];	int cnt;}PATH;char Map[20+2][20+2];int flag[20+2][20+2];int Record[20+2][20+2];int W[size+1][size+1];PATH path[size+1][size+1];Position p[size+1];int pcnt;int r,c;int dirr[4] = {0,-1,1,0};int dirc[4] = {1,0,0,-1};char rev[4] = {'W','S','N','E'};int DP[size+1][1<<size];int RD[size+1][1<<size];void BFS(int x){	int i,j;	int tmpr,tmpc,bufr,bufc;	for(i=0;i<=21;i++)		for(j=0;j<=21;j++)			Record[i][j] = -1;	tmpr = p[x].r;	tmpc = p[x].c;	Record[tmpr][tmpc] = 0;	queue<int> qr;	queue<int> qc;	qr.push(tmpr);	qc.push(tmpc);	while(!qr.empty()){		tmpr = qr.front();		tmpc = qc.front();		qr.pop();		qc.pop();		for(i=0;i<4;i++){			bufr = tmpr+dirr[i];			bufc = tmpc+dirc[i];			if(bufr>=1&&bufr<=r&&bufc>=1&&bufc<=c){				if(Map[bufr][bufc]==' ' && Record[bufr][bufc] == -1){					Record[bufr][bufc] = Record[tmpr][tmpc]+1;					qr.push(bufr);					qc.push(bufc);				}				if((Map[bufr][bufc] == '*' || Map[bufr][bufc] == 'S')&& Record[bufr][bufc] == -1){					Record[bufr][bufc] = Record[tmpr][tmpc]+1;					//printf("%d\n",Record[bufr][bufc]);					qr.push(bufr);					qc.push(bufc);					W[x][flag[bufr][bufc]]= Record[bufr][bufc];					path[x][flag[bufr][bufc]].cnt = Record[bufr][bufc];					path[x][flag[bufr][bufc]].path[Record[bufr][bufc]] = 0;					int y = flag[bufr][bufc];					int tmprr,tmpcc,bufrr,bufcc;					queue<int> qqr;					queue<int> qqc;					qqr.push(bufr);					qqc.push(bufc);					while(!qqr.empty()){						tmprr = qqr.front();						tmpcc = qqc.front();						qqr.pop();						qqc.pop();						for(int i=0;i<4;i++){							bufrr = tmprr + dirr[i];							bufcc = tmpcc + dirc[i];							if(bufrr>=1&&bufrr<=r&&bufcc>=1&&bufcc<=c){								if(Record[bufrr][bufcc] >=0 && Record[bufrr][bufcc] == Record[tmprr][tmpcc]-1){									path[x][y].path[Record[bufrr][bufcc]] = rev[i];									//printf("%d %c\n",Record[bufrr][bufcc],rev[i]);									qqr.push(bufrr);									qqc.push(bufcc);									break;								}							}						}					}				}			}		}	}}void lookup(){	int i,j;	int tmpr,tmpc,bufr,bufc;	for(i=0;i<=21;i++)		for(j=0;j<=21;j++)			Record[i][j] = -1;	tmpr = p[0].r;	tmpc = p[0].c;	Record[tmpr][tmpc] = 0;	queue<int> qr;	queue<int> qc;	qr.push(tmpr);	qc.push(tmpc);	while(!qr.empty()){		tmpr = qr.front();		tmpc = qc.front();		qr.pop();		qc.pop();		for(i=0;i<4;i++){			bufr = tmpr+dirr[i];			bufc = tmpc+dirc[i];			if(bufr>=1&&bufr<=r&&bufc>=1&&bufc<=c){				if(Map[bufr][bufc]==' ' && Record[bufr][bufc] == -1){					Record[bufr][bufc] = Record[tmpr][tmpc]+1;					qr.push(bufr);					qc.push(bufc);				}				if(Map[bufr][bufc] == '*' && Record[bufr][bufc] == -1){					Record[bufr][bufc] = Record[tmpr][tmpc]+1;					pcnt++;					flag[bufr][bufc] = pcnt;					p[pcnt].r = bufr;					p[pcnt].c = bufc;					qr.push(bufr);					qc.push(bufc);				}			}		}	}}int bitcount(int x){	int cnt=0;	if((x & 1) == 1)		cnt++;	for(int i=0;i<=10;i++){		x >>=1;		if((x & 1) == 1)			cnt++;	}	return cnt;}void TSP(){	int PP[20];	memset(DP,0x7f,sizeof(DP));	memset(RD,0x7f,sizeof(RD));	int i,j,k,s,t,total,min,buf,tmp;	PATH tmppath;	total = 1<<pcnt;	for(i=1;i<=pcnt;i++){		DP[i][0] = W[i][0];		RD[i][0] = 0;	}	for(k=1;k<=pcnt;k++)		for(s=1;s<total;s++)			if(bitcount(s) == k){				for(i=1;i<=pcnt;i++)					if((s&(1<<(i-1))) == 0){						min = 100000000;						memset(tmppath.path,0x7f,sizeof(tmppath.path));						tmppath.path[255] = 0;						for(j=1;j<=pcnt;j++)							if((s&(1<<(j-1))) != 0){								tmp = s & ( ((1<<pcnt)-1) ^ (1<<(j-1)) );								if(DP[j][tmp] < 100000000){									buf = W[i][j] + DP[j][tmp];									/*-------------------------------*/									int tempa,tempb,cc;									char Str[256];									Str[0] = 0;									PP[k+1] = i;									PP[k] = j;									PP[0] = 0;									tempa = j;									tempb = ( s ^ (1<<(tempa-1)) );									for(cc=k-1;cc>=1;cc--){										PP[cc] = RD[tempa][tempb];										tempa = PP[cc];										tempb = (tempb ^ (1<<(tempa-1)));									}									for(cc=1;cc<=k+1;cc++)										strcat(Str,path[PP[cc-1]][PP[cc]].path);									/*-------------------------------*/									if(buf < min || (buf == min && strcmp(tmppath.path,Str) == 1)){										strcpy(tmppath.path,Str);										tmppath.cnt = strlen(tmppath.path);										min = buf;										t = j;									}								}							}						if(min < 100000000){							DP[i][s] = min;							RD[i][s] = t;						}					}			}	min = 100000000;	memset(tmppath.path,0x7f,sizeof(tmppath.path));	tmppath.path[255] = 0;	for(i=1;i<=pcnt;i++){		tmp = ( ((1<<pcnt)-1) ^ (1<<(i-1)) );		buf = W[0][i]+DP[i][tmp];		/*-------------------------------*/		int tempa,tempb,cc;		char Str[256];		Str[0] = 0;		PP[pcnt+1] = 0;		PP[pcnt] = i;		PP[0] = 0;		tempa = i;		tempb = ( ((1<<pcnt)-1) ^ (1<<(tempa-1)) );		for(cc=pcnt-1;cc>=1;cc--){			PP[cc] = RD[tempa][tempb];			tempa = PP[cc];			tempb = (tempb ^ (1<<(tempa-1)));		}		for(cc=1;cc<=pcnt+1;cc++)			strcat(Str,path[PP[cc-1]][PP[cc]].path);		/*-------------------------------*/		if(buf < min  || (buf == min && strcmp(tmppath.path,Str) == 1)){			strcpy(tmppath.path,Str);			tmppath.cnt = strlen(tmppath.path);			min = buf;			t = i;		}	}	PP[pcnt+1] = 0;	PP[pcnt] = t;	PP[0] = 0;	buf = t;	tmp = ( ((1<<pcnt)-1) ^ (1<<(buf-1)) );	for(i=pcnt-1;i>=1;i--){		PP[i] = RD[buf][tmp];		buf = PP[i];		tmp = (tmp ^ (1<<(buf-1)));	}	for(i=1;i<=pcnt+1;i++)		printf("%s",path[PP[i-1]][PP[i]].path);	printf("\n");}int main(){	int i,j,len;	char S[20+2];	while(scanf("%d %d",&r,&c)!=EOF && !(r==0&&c==0)){		getchar();		memset(Map,0,sizeof(Map));		memset(flag,0,sizeof(flag));		memset(W,0x7f,sizeof(W));		memset(path,0,sizeof(path));		pcnt = 0;		for(i=1;i<=r;i++){			gets(S);			len = strlen(S);			if(len != c){				S[c] = 0;				for(j=len;j<c;j++)					S[j] = ' ';			}			for(j=1;j<=c;j++){				Map[i][j] = S[j-1];				if(Map[i][j] == 'S'){					p[0].r = i;					p[0].c = j;				}				if(Map[i][j] == 'X')					Map[i][j] = '#';			}		}		lookup();		for(i=0;i<=pcnt;i++)			BFS(i);		if(pcnt == 0)			printf("Stay home!\n");		else			TSP();	}	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣中文一区| 亚洲成av人片在线| 国产91对白在线观看九色| 亚洲精品一线二线三线无人区| 免费高清在线视频一区·| 日韩欧美激情一区| 国产精品66部| 中文字幕一区在线观看| 欧美怡红院视频| 日韩精品国产精品| 久久久久久夜精品精品免费| av中文字幕在线不卡| 亚洲综合在线观看视频| 日韩无一区二区| 成人精品电影在线观看| 亚洲国产欧美在线| 精品sm在线观看| 91啪九色porn原创视频在线观看| 亚洲国产精品久久不卡毛片| 日韩免费成人网| 成人高清伦理免费影院在线观看| 亚洲黄色免费网站| 日韩免费看的电影| 91丨porny丨户外露出| 日韩电影网1区2区| 国产精品色呦呦| 欧美三级视频在线| 国产91精品露脸国语对白| 一区二区三区在线免费| 精品少妇一区二区三区视频免付费| 国产.精品.日韩.另类.中文.在线.播放| 中文字幕日韩精品一区| 91精品国产综合久久精品图片| 大美女一区二区三区| 午夜影院在线观看欧美| 国产精品电影院| 精品免费99久久| 欧美色图激情小说| 成人性生交大片免费看中文| 水野朝阳av一区二区三区| 日本一区二区三区在线观看| 欧美久久久久免费| 91美女视频网站| 久草这里只有精品视频| 亚洲r级在线视频| 国产精品久久看| 久久久久免费观看| 欧美一级高清片| 欧美偷拍一区二区| 成人免费看片app下载| 麻豆精品视频在线| 亚洲国产毛片aaaaa无费看| 国产精品日韩精品欧美在线 | 色综合天天视频在线观看| 麻豆精品视频在线观看视频| 亚洲国产精品久久人人爱蜜臀| 国产精品久久久久久久午夜片 | 日韩一区二区三区免费观看| 色伊人久久综合中文字幕| 欧美日韩国产综合一区二区三区| 国产乱对白刺激视频不卡| 日韩av午夜在线观看| 亚洲综合图片区| 亚洲久草在线视频| 亚洲欧美色一区| 亚洲欧美影音先锋| 国产精品蜜臀av| 国产精品理论片在线观看| 久久亚洲私人国产精品va媚药| 欧美一区二区三区在线电影| 在线不卡中文字幕播放| 欧美日本精品一区二区三区| 欧美日韩精品一二三区| 欧美影视一区二区三区| 欧美三级日韩三级| 欧美日韩国产123区| 51久久夜色精品国产麻豆| 91精品婷婷国产综合久久| 91精品国产免费| 日韩欧美第一区| 精品久久国产老人久久综合| 26uuu亚洲婷婷狠狠天堂| 久久久天堂av| 中文字幕日韩av资源站| 亚洲精品国产一区二区精华液 | 亚洲永久免费视频| 亚洲小少妇裸体bbw| 亚洲国产成人av网| 日韩成人一级片| 韩国三级在线一区| 国产成人在线看| 91啪九色porn原创视频在线观看| 91在线观看美女| 欧美日韩成人在线| 欧美va亚洲va| 中文字幕一区二区三区在线不卡 | 国产精品传媒视频| 亚洲精品久久7777| 不卡的看片网站| 日本韩国精品在线| 91精品国产综合久久久久久久久久 | 精品一区免费av| 高清不卡一区二区| 在线亚洲一区观看| 日韩美一区二区三区| 国产精品午夜在线| 亚洲aⅴ怡春院| 国产一区亚洲一区| 色欧美乱欧美15图片| 3d成人h动漫网站入口| 久久精品亚洲乱码伦伦中文 | 狠狠色丁香久久婷婷综合_中| 国产成人激情av| 欧美亚洲另类激情小说| 日韩视频123| 亚洲免费观看在线观看| 麻豆久久久久久| 一本大道久久a久久综合婷婷| 欧美一区二区久久| 亚洲视频资源在线| 久久激五月天综合精品| 色综合天天狠狠| 久久精品视频网| 五月婷婷另类国产| 99久久久精品| 精品国产一区久久| 亚洲成人在线观看视频| 成人精品gif动图一区| 日韩一级片在线播放| 综合电影一区二区三区 | 精品日韩一区二区三区| 亚洲人成网站精品片在线观看| 青娱乐精品视频| 色呦呦一区二区三区| 久久精品网站免费观看| 日日夜夜一区二区| 在线中文字幕不卡| 亚洲国产精品av| 久久99精品国产| 在线不卡a资源高清| 亚洲男同1069视频| 成人免费视频网站在线观看| 日韩欧美aaaaaa| 日韩av中文在线观看| 91激情在线视频| 亚洲人123区| 不卡在线观看av| 国产精品污污网站在线观看 | 一区二区高清免费观看影视大全| 国产做a爰片久久毛片| 欧美一区二区三区性视频| 一区二区三区四区蜜桃| 不卡一区中文字幕| 亚洲国产电影在线观看| 国产精品一级二级三级| 欧美成人一区二区| 久久99国产乱子伦精品免费| 欧美一区二区视频在线观看2022 | 自拍偷拍亚洲激情| 国产99久久久久| 国产三级欧美三级| 国产伦理精品不卡| 久久久91精品国产一区二区精品| 久久精品国产成人一区二区三区| 日韩午夜av一区| 美国一区二区三区在线播放| 日韩一级二级三级精品视频| 免费观看在线综合色| 日韩精品一区二区在线| 久久99九九99精品| 久久久五月婷婷| www.日韩在线| 亚洲欧美区自拍先锋| 欧美影视一区在线| 日本三级韩国三级欧美三级| 欧美一区二区三区播放老司机| 卡一卡二国产精品| 久久久蜜臀国产一区二区| 国产99精品视频| 国产精品传媒视频| 欧美午夜电影在线播放| 日本成人在线不卡视频| 久久综合九色综合欧美亚洲| 粉嫩av一区二区三区粉嫩| 综合亚洲深深色噜噜狠狠网站| 在线视频国产一区| 日韩福利电影在线| 久久网站最新地址| 99在线精品观看| 五月天一区二区三区| 欧美电视剧在线观看完整版| 国产成人av一区二区三区在线 | 亚洲国产精品二十页| 色综合天天综合在线视频| 午夜精品一区二区三区三上悠亚| 欧美电影免费观看高清完整版在线观看| 韩国欧美一区二区| 亚洲精品乱码久久久久久久久| 制服视频三区第一页精品| 国产精品 欧美精品|