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

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

?? knight.cpp

?? 求馬的哈密頓回路,在國際相棋棋局上,一只馬要經過每個點,且僅經過一次,棋局可以是非常大,要求輸出馬經過的所有點及路徑.
?? CPP
字號:
#include<iostream>
#include <fstream>
#include <math.h>
//#include<ctime>
using namespace std;

typedef struct
{
	int x;
	int y;
}grid;

	int a66[6][6]={1,30,33,16,3,24,
		32,17,2,23,34,15,
		29,36,31,14,25,4,
		18,9,6,35,22,13,
		7,28,11,20,5,26,
		10,19,8,27,12,21};

	int a68[6][8]={1,10,31,40,21,14,29,38,
		32,41,2,11,30,39,22,13,
		9,48,33,20,15,12,37,28,
		42,3,44,47,6,25,18,23,
		45,8,5,34,19,16,27,36,
		4,43,46,7,26,35,24,17};

	int a88[8][8]={1,46,17,50,3,6,31,52,
		18,49,2,7,30,51,56,5,
		45,64,47,16,27,4,53,32,
		48,19,8,29,10,55,26,57,
		63,44,11,22,15,28,33,54,
		12,41,20,9,36,23,58,25,
		43,62,39,14,21,60,37,34,
		40,13,42,61,38,35,24,59};

	int a810[8][10]={1,46,37,66,3,48,35,68,5,8,
		38,65,2,47,36,67,4,7,34,69,
		45,80,39,24,49,18,31,52,9,6,
		64,23,44,21,30,15,50,19,70,33,
		79,40,25,14,17,20,53,32,51,10,
		26,63,22,43,54,29,16,73,58,71,
		41,78,61,28,13,76,59,56,11,74,
		62,27,42,77,60,55,12,75,72,57};

	int a1010[10][10]={1,54,69,66,3,56,39,64,5,8,
		68,71,2,55,38,65,4,7,88,63,
		53,100,67,70,57,26,35,40,9,6,
		72,75,52,27,42,37,58,87,62,89,
		99,30,73,44,25,34,41,36,59,10,
		74,51,76,31,28,43,86,81,90,61,
		77,98,29,24,45,80,33,60,11,92,
		50,23,48,79,32,85,82,91,14,17,
		97,78,21,84,95,46,19,16,93,12,
		22,49,96,47,20,83,94,13,18,15};

	int a1012[10][12]={1,4,119,100,65,6,69,102,71,8,75,104,
		118,99,2,5,68,101,42,7,28,103,72,9,
		3,120,97,64,41,66,25,70,39,74,105,76,
		98,117,48,67,62,43,40,27,60,29,10,73,
		93,96,63,44,47,26,61,24,33,38,77,106,
		116,51,94,49,20,23,46,37,30,59,34,11,
		95,92,115,52,45,54,21,32,35,80,107,78,
		114,89,50,19,22,85,36,55,58,31,12,81,
		91,18,87,112,53,16,57,110,83,14,79,108,
		88,113,90,17,86,111,84,15,56,109,82,13};

class knight
{
public:
	knight(int x,int y)
	{
//		cout<<"knight1"<<endl;
		int i,j,**a;
		m=x;n=y;	
		a=new int *[10];//賦值用的數組
		for(i=0;i<10;i++)
		{
			a[i]=new int [12];
		}
//		cout<<"knight2"<<endl;
		b66=new grid[36];
		b68=new grid[48];
		b86=new grid[48];
		b88=new grid[64];
		b810=new grid[80];
		b108=new grid[80];
		b1010=new grid[100];
		b1012=new grid[120];
		b1210=new grid[120];

		link=new grid *[m];
		for(i=0;i<m;i++)
		{
			link[i]=new grid[n];
		}
//		cout<<"knight3"<<endl;

		////////////////////以下是對b數組的賦值
		for(i=0;i<6;i++)
			for(j=0;j<6;j++)
				a[i][j]=a66[i][j];
		makeb(6,6,a,b66);
//		cout<<"knight4"<<endl;
		for(i=0;i<6;i++)
			for(j=0;j<8;j++)
				a[i][j]=a68[i][j];
		makeb(6,8,a,b68); 
		makeb(8,6,a,b86);

		for(i=0;i<8;i++)
			for(j=0;j<8;j++)
				a[i][j]=a88[i][j];
		makeb(8,8,a,b88);

		for(i=0;i<8;i++)
			for(j=0;j<10;j++)
				a[i][j]=a810[i][j];
		makeb(8,10,a,b810);	
		makeb(10,8,a,b108);

		for(i=0;i<10;i++)
			for(j=0;j<10;j++)
				a[i][j]=a1010[i][j];
		makeb(10,10,a,b1010);

		for(i=0;i<10;i++)
			for(j=0;j<12;j++)
				a[i][j]=a1012[i][j];
		makeb(10,12,a,b1012);
		makeb(12,10,a,b1210);		
//		cout<<"knight"<<endl;

	}
	
	grid *b66,*b68,*b86,*b88,*b810,*b108,*b1010,*b1012,*b1210,**link;
	int m,n;

	int pos(int x,int y,int col)
	{
		return col*x+y;
	}
	
	void makeb(int m,int n,int **a,grid *b)
	{
//		cout<<"step1"<<endl;
		int i,j,k=m*n;
		if(m<n)
		{
			for(i=0;i<m;i++)
				for(j=0;j<n;j++)
				{
					int p=a[i][j]-1;
					b[p].x=i;
					b[p].y=j;
				}
		}
		else
		{
			for(i=0;i<m;i++)
				for(j=0;j<n;j++)
				{
					int p=a[j][i]-1;
					b[p].x=i;
					b[p].y=j;
				}
		}
//		cout<<"step2"<<endl;
	}

	void build(int m,int n,int offx,int offy,int col,grid *b)
	{
//		cout<<"build1"<<endl;
		int i,k=m*n;
		for(i=0;i<k;i++)
		{
			int x1=offx+b[i].x,
				y1=offy+b[i].y,
				x2=offx+b[(i+1)%k].x,
				y2=offy+b[(i+1)%k].y;
			link[x1][y1].x=pos(x2,y2,col);
			link[x2][y2].y=pos(x1,y1,col);
		}
//		cout<<"build2"<<endl;
	}

	void base(int mm,int nn,int offx,int offy)
	{
//		cout<<"base1"<<endl;
		if(mm==6&&nn==6) build(mm,nn,offx,offy,n,b66);
		if(mm==6&&nn==8) build(mm,nn,offx,offy,n,b68);
		if(mm==8&&nn==6) build(mm,nn,offx,offy,n,b86);
		if(mm==8&&nn==8) build(mm,nn,offx,offy,n,b88);
		if(mm==8&&nn==10) build(mm,nn,offx,offy,n,b810);
		if(mm==10&&nn==8) build(mm,nn,offx,offy,n,b108);
		if(mm==10&&nn==10) build(mm,nn,offx,offy,n,b1010);
		if(mm==10&&nn==12) build(mm,nn,offx,offy,n,b1012);
		if(mm==12&&nn==10) build(mm,nn,offx,offy,n,b1210);
//		cout<<"base2"<<endl;
	}

	bool comp(int mm,int nn,int offx,int offy)
	{
//		cout<<"comp1"<<endl;
		int mm1,mm2,nn1,nn2;
		int x[8],y[8],p[8];
		if(mm-nn>2||nn-mm>2||mm<6||nn<6) return 1;
		if(mm<12||nn<12)
		{
			base(mm,nn,offx,offy);
			return 0;
		}
		mm1=mm/2;
		if(mm%4>0)
			mm1--;
		mm2=mm-mm1;
		nn1=nn/2;
		if(nn%4>0)
			nn1--;
		nn2=nn-nn1;

		comp(mm1,nn1,offx,offy);
		comp(mm1,nn2,offx,offy+nn1);
		comp(mm2,nn1,offx+mm1,offy);
		comp(mm2,nn2,offx+mm1,offy+nn1);

		x[0]=offx+mm1-1; y[0]=offy+nn1-3;
		x[1]=x[0]-1;y[1]=y[0]+2;
		x[2]=x[1]-1;y[2]=y[1]+2;
		x[3]=x[2]+2;y[3]=y[2]-1;
		x[4]=x[3]+1;y[4]=y[3]+2;
		x[5]=x[4]+1;y[5]=y[4]-2;
		x[6]=x[5]+1;y[6]=y[5]-2;
		x[7]=x[6]-2;y[7]=y[6]+1;

		for(int i=0;i<8;i++)
			p[i]=pos(x[i],y[i],n);
		for(i=1;i<8;i+=2)
		{
			int j1=(i+1)%8,j2=(i+2)%8;
			if(link[x[i]][y[i]].x==p[i-1])
				link[x[i]][y[i]].x=p[j1];
			else
				link[x[i]][y[i]].y=p[j1];

			if(link[x[j1]][y[j1]].x==p[j2])
				link[x[j1]][y[j1]].x=p[i];
			else
				link[x[j1]][y[j1]].y=p[i];	
		}
//		cout<<"comp2"<<endl;
		return 0;

	}
};

void main()
{
	ifstream in("input.txt");
	if(in.fail())
	{
		cout<<"the input.txt is not exist!";
		exit(1);
	}
	ofstream out("output.txt");

	int m,n;
	in>>m>>n;
	knight k_night(m,n);
	int i,j,k,x,y,p,**output;

	output=new int *[m];
	for(i=0;i<m;i++)
	{
		output[i]=new int [n];
	}
	
	if(k_night.comp(k_night.m,k_night.n,0,0))
		return;
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
			output[i][j]=0;

	i=0;j=0;k=2;output[0][0]=1;
	out<<"(0,0)"<<" ";
	for(p=1;p<m*n;p++)
	{
		x=k_night.link[i][j].x;
		y=k_night.link[i][j].y;
		i=x/n;
		j=x%n;
		if(output[i][j]>0)
		{
			i=y/n;
			j=y%n;
		}
		output[i][j]=k++;
		out<<"("<<i<<","<<j<<") ";
		if((k-1)%n==0)
			out<<endl;
	}

	out<<endl;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
			out<<output[i][j]<<" ";
		out<<endl;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡在线一区| 喷白浆一区二区| 国产日韩欧美高清| 日韩免费在线观看| 精品国产91洋老外米糕| 精品国产网站在线观看| 精品国产乱码久久久久久图片 | 亚洲一区二区美女| 综合分类小说区另类春色亚洲小说欧美 | 国产精品白丝av| 国产一区二区三区美女| 激情六月婷婷综合| 国产在线精品一区二区夜色| 精品在线免费观看| 国产成人自拍网| 国产成人精品一区二区三区四区 | 日韩免费电影网站| 久久亚洲综合av| 国产精品毛片久久久久久| 国产精品久久久久久久裸模| 亚洲欧美日韩电影| 日本亚洲电影天堂| 国产aⅴ精品一区二区三区色成熟| 成人app软件下载大全免费| 99v久久综合狠狠综合久久| 欧美在线小视频| 26uuu精品一区二区在线观看| 国产精品进线69影院| 丝袜美腿亚洲综合| 成人综合在线观看| 777奇米成人网| 国产日韩欧美在线一区| 亚洲欧洲精品一区二区精品久久久 | 亚洲成a人片在线不卡一二三区| 日日噜噜夜夜狠狠视频欧美人| 激情深爱一区二区| 91福利视频久久久久| 日韩精品一区二区三区视频播放 | 在线日韩一区二区| 久久网这里都是精品| 夜夜揉揉日日人人青青一国产精品| 日韩精品91亚洲二区在线观看 | 亚洲综合色丁香婷婷六月图片| 日本不卡一区二区三区高清视频| 成人av电影在线网| 欧美xxx久久| 亚洲精品五月天| 国产激情视频一区二区三区欧美 | 精品免费日韩av| 伊人婷婷欧美激情| 风间由美一区二区av101| 欧美高清www午色夜在线视频| 亚洲欧美日韩在线不卡| 美女网站视频久久| 欧美天堂亚洲电影院在线播放| 国产亚洲短视频| 奇米色777欧美一区二区| 暴力调教一区二区三区| 久久综合色播五月| 奇米一区二区三区| 欧美人与禽zozo性伦| 欧美国产日韩一二三区| 国产精品综合一区二区三区| 91精品久久久久久蜜臀| 亚洲成人综合视频| 色综合久久久久综合体| 国产精品三级电影| 高清免费成人av| 亚洲精品在线三区| 韩国毛片一区二区三区| 日韩视频123| 蜜臀久久久久久久| 91麻豆精品国产91久久久久久久久| 亚洲女与黑人做爰| 99久久er热在这里只有精品66| 久久久高清一区二区三区| 精品一二线国产| 精品国产制服丝袜高跟| 国内不卡的二区三区中文字幕| 日韩一级免费观看| 免费久久99精品国产| 欧美sm极限捆绑bd| 国产乱色国产精品免费视频| 2017欧美狠狠色| 波波电影院一区二区三区| 亚洲欧美自拍偷拍色图| 色一情一伦一子一伦一区| 一区二区三区美女| 91麻豆精品国产91久久久久久久久 | 日韩一区二区影院| 紧缚捆绑精品一区二区| 2021中文字幕一区亚洲| 成人精品高清在线| 亚洲午夜久久久久久久久电影院 | 精品制服美女丁香| 中国色在线观看另类| 91国偷自产一区二区开放时间| 石原莉奈在线亚洲三区| xf在线a精品一区二区视频网站| 国产91丝袜在线播放0| 亚洲视频 欧洲视频| 欧美色图免费看| 国内精品嫩模私拍在线| 亚洲婷婷在线视频| 欧美一区二区三区视频在线| 国产一区激情在线| 一区二区三区欧美| 精品国产乱码久久久久久浪潮 | 国产91清纯白嫩初高中在线观看| 亚洲欧美日韩电影| 日韩久久精品一区| 99国产精品99久久久久久| 日本sm残虐另类| ㊣最新国产の精品bt伙计久久| 欧美日本视频在线| av电影在线观看不卡| 日韩高清不卡一区二区三区| 国产精品久久久久影院老司| 91精品啪在线观看国产60岁| av在线不卡观看免费观看| 青青草国产成人av片免费| 国产精品久久久久影视| 日韩一级视频免费观看在线| 91福利国产成人精品照片| 国产米奇在线777精品观看| 婷婷久久综合九色综合绿巨人 | 91黄视频在线观看| 不卡一区二区三区四区| 极品少妇xxxx偷拍精品少妇| 亚洲自拍另类综合| 亚洲欧洲综合另类在线| 欧美国产禁国产网站cc| 欧美电视剧免费观看| 欧美日韩在线精品一区二区三区激情| 国产激情一区二区三区桃花岛亚洲| 奇米色一区二区三区四区| 亚洲一区中文日韩| 一区二区三区四区不卡视频| 欧美极品另类videosde| 国产校园另类小说区| 日韩精品一区二区三区视频在线观看| 欧美日韩视频在线一区二区| 99久久99久久精品免费观看 | 麻豆极品一区二区三区| 午夜精品福利一区二区三区av| 亚洲欧美另类久久久精品 | 色婷婷国产精品| 97精品电影院| 波多野洁衣一区| 99re视频这里只有精品| av一区二区久久| 91免费看片在线观看| www.日韩av| 92精品国产成人观看免费| 99天天综合性| av中文字幕一区| 在线一区二区视频| 欧美三级在线播放| 欧美一区二区三区视频在线观看| 4hu四虎永久在线影院成人| 777欧美精品| 欧美精品一区二区三区蜜桃 | 欧美日韩中文一区| 欧美高清视频在线高清观看mv色露露十八 | 国产在线精品一区二区| 国产一区二区精品久久| 成人自拍视频在线观看| www.亚洲在线| 欧美午夜精品一区二区三区| 欧美日韩一区三区| 日韩视频在线你懂得| 精品国产免费一区二区三区香蕉| 精品精品国产高清一毛片一天堂| 日本一区二区在线不卡| 亚洲免费观看高清完整| 亚洲国产精品精华液网站| 久久成人麻豆午夜电影| 国产黄人亚洲片| 欧美在线影院一区二区| 日韩一区二区三区四区五区六区| 久久中文字幕电影| 亚洲日本中文字幕区| 图片区小说区国产精品视频| 韩国视频一区二区| 色婷婷综合中文久久一本| 欧美一级高清大全免费观看| 久久久久久久久蜜桃| 亚洲欧美日韩系列| 久久精品国内一区二区三区| 成人av免费网站| 日韩一区二区三区免费看 | 色综合天天性综合| 欧美一区二区在线播放| 综合色中文字幕| 国内精品嫩模私拍在线| 欧美性色综合网| 国产无一区二区| 日本欧美在线观看| 色伊人久久综合中文字幕| 久久色视频免费观看|