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

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

?? main.cpp

?? 一個acm算法題目 問題描述: 有一個黑盒子
?? CPP
字號:
#include <iostream.h>
#include <memory.h>
#include <fstream.h>

#define MAXX 15
#define MAXY 10
#define MAXXY 24

class Sys
{
private:
	int* x;
	int* y;
	int* xy;//逆時針x->y
	int* yx;
	int tx[MAXX];
	int ty[MAXY];
	int txy[MAXXY];//逆時針x->y 左上角為0,0
	int tyx[MAXXY];//左下角為0,0
	int IsPlaced[MAXX][MAXY];
	bool ok;
public:
	int Result[MAXX][MAXY];
	Sys(int* input_x,int* input_y,int* input_xy,int* input_yx);
	void backtrack(int CurrentX,int CurrentY);
};

Sys::Sys(int* input_x,int* input_y,int* input_xy,int* input_yx)
{
	ok = false;
	memset(tx,0,MAXX*sizeof(int));
	memset(ty,0,MAXY*sizeof(int));
	memset(txy,0,MAXXY*sizeof(int));
	memset(tyx,0,MAXXY*sizeof(int));

	x = input_x;
	y = input_y;
	xy = input_xy;
	yx = input_yx;

	for(int i=0;i<MAXX;i++)
		for(int j=0;j<MAXY;j++)
			IsPlaced[i][j]=-1;//-1代表沒有用,0代表沒有放,1放了
}

void Sys::backtrack(int CurrentX,int CurrentY)
{
	CurrentX++;
	if(CurrentX==MAXX)
	{
		CurrentX=0;
		CurrentY++;
	}
	//到達底部處理
	if(CurrentY==MAXY)
	{
		for(int i=0;i<MAXX;i++)
			if(tx[i]!=x[i])
				return;
		for(int i=0;i<MAXY;i++)
			if(ty[i]!=y[i])
				return;
		for(int i=0;i<MAXXY;i++)
		{
			if(txy[i]!=xy[i])
				return;
			if(tyx[i]!=yx[i])
				return;
		}
		for(int i=0;i<MAXX;i++)
			for(int j=0;j<MAXY;j++)
				Result[i][j] = IsPlaced[i][j];
		ok = true;
		return;
	}

	/////////////////////////////////////////////////////
	//不夠的情況
	//x
	if(tx[CurrentX]+MAXY-CurrentY<x[CurrentX])
		return;

	//y
	if(ty[CurrentY]+MAXX-CurrentX<y[CurrentY])
		return;

	//xy
	int counts = 1;
	int m=CurrentX;
	int n=CurrentY;
	while(m>=0&&n<MAXY)
	{
		m--;
		n++;
		counts++;
	}
	if(txy[CurrentX+CurrentY]+counts<xy[CurrentX+CurrentY])
		return;

	//yx
	counts = 1;
	m=CurrentX;
	n=CurrentY;
	while(m<MAXX&&n<MAXY)
	{
		m++;
		n++;
		counts++;
	}
	if(tyx[CurrentX-CurrentY+MAXY-1]+counts<yx[CurrentX-CurrentY+MAXY-1])
		return;
	/////////////////////////////////////////////////////
	//必須放情況
	if(tx[CurrentX]+MAXY-CurrentY==x[CurrentX])
		IsPlaced[CurrentX][CurrentY]=1;

	//y
	if(ty[CurrentY]+MAXX-CurrentX==y[CurrentY])
		IsPlaced[CurrentX][CurrentY]=1;

	//xy
	counts = 1;
	m=CurrentX;
	n=CurrentY;
	while(m>=0&&n<MAXY)
	{
		m--;
		n++;
		counts++;
	}
	if(txy[CurrentX+CurrentY]+counts==xy[CurrentX+CurrentY])
		IsPlaced[CurrentX][CurrentY]=1;

	//yx
	counts = 1;
	m=CurrentX;
	n=CurrentY;
	while(m<MAXX&&n<MAXY)
	{
		m++;
		n++;
		counts++;
	}
	if(tyx[CurrentX-CurrentY+MAXY-1]+counts==yx[CurrentX-CurrentY+MAXY-1])
		IsPlaced[CurrentX][CurrentY]=1;
	/////////////////////////////////////////////////////

	//放滿情況
	if(tx[CurrentX]==x[CurrentX])
	{
		IsPlaced[CurrentX][CurrentY]=0;
	}
	if(ty[CurrentY]==y[CurrentY])
	{
		IsPlaced[CurrentX][CurrentY]=0;
	}
	//xy
	if(txy[CurrentX+CurrentY]==xy[CurrentX+CurrentY])
	{
		IsPlaced[CurrentX][CurrentY]=0;
	}
	//yx
	if(tyx[CurrentX-CurrentY+MAXY-1]==yx[CurrentX-CurrentY+MAXY-1])
	{
		IsPlaced[CurrentX][CurrentY]=0;
	}

	//一定放的情況
	if(IsPlaced[CurrentX][CurrentY]==1)
	{
		tx[CurrentX]++;
		ty[CurrentY]++;
		txy[CurrentX+CurrentY]++;
		tyx[CurrentX-CurrentY+MAXY-1]++;

		backtrack(CurrentX,CurrentY);

		IsPlaced[CurrentX][CurrentY]=-1;
		tx[CurrentX]--;
		ty[CurrentY]--;
		txy[CurrentX+CurrentY]--;
		tyx[CurrentX-CurrentY+MAXY-1]--;
		return;
	}
	//一定不放的情況
	if(IsPlaced[CurrentX][CurrentY]==0)
	{
		backtrack(CurrentX,CurrentY);
		IsPlaced[CurrentX][CurrentY]=-1;
	}
	else
	{
		//回溯有先后,先放,后不放,用一個方法剪枝
		//此點是所要節點
		IsPlaced[CurrentX][CurrentY]=1;
		tx[CurrentX]++;
		ty[CurrentY]++;
		txy[CurrentX+CurrentY]++;
		tyx[CurrentX-CurrentY+MAXY-1]++;

		backtrack(CurrentX,CurrentY);

		IsPlaced[CurrentX][CurrentY]=0;
		tx[CurrentX]--;
		ty[CurrentY]--;
		txy[CurrentX+CurrentY]--;
		tyx[CurrentX-CurrentY+MAXY-1]--;
		if(ok==true)
			return;

		//不放,進入下一層
		IsPlaced[CurrentX][CurrentY]=0;
		backtrack(CurrentX,CurrentY);
		IsPlaced[CurrentX][CurrentY]=-1;
		if(ok==true)
			return;
	}
}

main()
{
	ifstream f("input.txt",ios::in);
	ofstream of("output.txt",ios::out);
	int num[4][30];
	int totalx=0;
	int total;
	while(!f.eof())
	{
		total=0;
		char c=0;
		for(int i=0;(int)c!=10&&!f.eof();i++)
		{
			f>>num[totalx][total];
			f.read(&c,1);
			total++;
		}
		totalx++;
	}

	Sys s(num[0],num[1],num[2],num[3]);
	s.backtrack(-1,0);
	for(int i=0;i<MAXY;i++)
	{
		for(int j=0;j<MAXX;j++)
		{
			if(s.Result[j][i]==1)
				of<<"*";
			else
				of<<' ';
		}
		of<<endl;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产欧美一区二区| 久久99精品视频| 国产亚洲自拍一区| 日韩欧美成人激情| 日韩一区二区中文字幕| 欧美日韩久久不卡| 在线亚洲欧美专区二区| 在线免费观看日韩欧美| 欧美制服丝袜第一页| 欧美三级电影网站| 欧美日韩的一区二区| 欧美精选一区二区| 欧美成人a∨高清免费观看| 日韩精品最新网址| 久久久久久久综合色一本| 久久亚洲综合色| 国产精品视频免费看| 最新国产精品久久精品| 亚洲欧美日韩中文播放| 亚洲国产精品一区二区www在线 | 欧美丰满少妇xxxxx高潮对白 | 欧美一级高清片| 日韩美女在线视频 | 国产精品麻豆99久久久久久| 亚洲国产成人一区二区三区| 1024亚洲合集| 日本成人在线网站| 国产精品一区二区免费不卡| aaa欧美大片| 91麻豆精品国产无毒不卡在线观看| 日韩精品一区二区三区视频| 亚洲国产精品二十页| 一区二区三区 在线观看视频| 男人的j进女人的j一区| 成人精品免费看| 在线不卡中文字幕| 国产精品区一区二区三| 日韩在线卡一卡二| 不卡视频免费播放| 日韩写真欧美这视频| 中文字幕一区二区三区四区 | 韩国精品在线观看| 色8久久人人97超碰香蕉987| 欧美一区二区三区免费视频| 国产精品大尺度| 天天影视色香欲综合网老头| 成人一二三区视频| 6080午夜不卡| 亚洲美女区一区| 国产乱子轮精品视频| 欧美三级电影精品| 成人免费视频在线观看| 激情成人综合网| 欧美色男人天堂| 亚洲视频在线一区| 国产成人三级在线观看| 91精品国产91热久久久做人人| 成人欧美一区二区三区| 国产91在线观看丝袜| 欧美一级二级三级乱码| 亚洲mv在线观看| 色综合视频在线观看| 亚洲国产成人一区二区三区| 韩国v欧美v日本v亚洲v| 91精品国产免费久久综合| 亚洲精品国产一区二区精华液 | 日韩一区二区电影| 五月天激情综合| 欧美性大战久久久久久久蜜臀| 亚洲欧美在线视频| a级高清视频欧美日韩| 欧美丝袜自拍制服另类| 国产欧美一区二区精品秋霞影院| 免费xxxx性欧美18vr| 欧美日韩大陆一区二区| 亚洲综合男人的天堂| 91免费观看在线| 国产精品色噜噜| 99久久婷婷国产| 亚洲欧美另类久久久精品2019| 99久久精品国产导航| 国产精品美女久久久久久2018 | 精品久久五月天| 久久99精品网久久| 久久久噜噜噜久久中文字幕色伊伊| 九九**精品视频免费播放| 欧美精品一区二区久久久 | 激情久久久久久久久久久久久久久久| 这里只有精品电影| 三级不卡在线观看| 日韩女优av电影| 国产成人精品免费一区二区| 国产精品伦理在线| 久久综合网色—综合色88| 狠狠狠色丁香婷婷综合激情| 国产人妖乱国产精品人妖| www.色综合.com| 亚洲第一搞黄网站| 欧美不卡视频一区| 成人性生交大片| 亚洲最大色网站| 日韩美女视频在线| 91在线视频网址| 日韩精品一级中文字幕精品视频免费观看 | 久久久亚洲精品一区二区三区 | 国内成人精品2018免费看| 久久久一区二区| 91精品福利视频| 男人的天堂久久精品| 中文字幕欧美区| 欧美日韩国产不卡| 国产成人8x视频一区二区 | 日韩av网站在线观看| 精品99一区二区| 欧美亚洲日本国产| 国产精品538一区二区在线| 一区二区三区四区不卡在线| 26uuu国产日韩综合| 在线观看免费一区| 国产精品77777| 天堂久久久久va久久久久| 国产精品国产精品国产专区不片| 在线不卡欧美精品一区二区三区| 国产成人啪免费观看软件| 丝袜a∨在线一区二区三区不卡 | 亚洲三级理论片| 日韩精品在线看片z| 91久久精品一区二区| 国产麻豆日韩欧美久久| 日韩精品国产欧美| 伊人色综合久久天天| 国产日韩欧美精品综合| 日韩亚洲欧美中文三级| 欧美视频日韩视频| 91丨九色porny丨蝌蚪| 国产成人三级在线观看| 久久电影网站中文字幕| 亚洲h动漫在线| 一区二区三区在线观看国产| 国产精品进线69影院| 国产乱淫av一区二区三区| 综合久久久久综合| 国产欧美日韩综合精品一区二区| 91精品国产一区二区人妖| 精品视频123区在线观看| 99re免费视频精品全部| 成人综合在线观看| 国产69精品久久777的优势| 国产精品一区二区你懂的| 精品一区二区三区免费观看| 青青青伊人色综合久久| 日本欧美一区二区三区| 天堂久久一区二区三区| 亚洲高清视频中文字幕| 一级特黄大欧美久久久| 一区二区三区中文字幕| 亚洲一区二区三区四区在线免费观看| 日韩美女视频一区二区 | 亚洲欧洲精品一区二区精品久久久| 久久综合丝袜日本网| 国产区在线观看成人精品| 国产亚洲欧洲一区高清在线观看| 精品国产91九色蝌蚪| 久久久久88色偷偷免费| 久久精品亚洲国产奇米99| 中文字幕精品—区二区四季| 中文字幕一区二区5566日韩| 亚洲摸摸操操av| 亚洲电影在线播放| 美女任你摸久久| 懂色av一区二区三区免费观看| 成人99免费视频| 欧美在线不卡一区| 91精品国产色综合久久| 国产亚洲午夜高清国产拍精品| 国产精品久久久久久亚洲毛片 | 日韩电影在线一区二区三区| 伦理电影国产精品| 成人免费毛片嘿嘿连载视频| 91小视频在线| 日韩一卡二卡三卡| 欧美国产成人在线| 亚洲国产日韩a在线播放性色| 成人福利视频网站| 久久精品欧美一区二区三区麻豆| 久久精品在线观看| 亚洲精品日产精品乱码不卡| 午夜久久久影院| 国产精品一卡二卡在线观看| 91丨porny丨中文| 日韩女优制服丝袜电影| 亚洲日本va午夜在线影院| 日韩成人免费电影| av中文字幕一区| 欧美女孩性生活视频| 国产女同互慰高潮91漫画| 午夜精品爽啪视频| 99这里只有久久精品视频| 欧美一区二区人人喊爽| 亚洲欧美日韩国产另类专区|