wikioi1004 四子连棋
来源:互联网 发布:iphone7数据恢复失败 编辑:程序博客网 时间:2024/06/18 09:58
题目描述 Description
在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑白双方交替走棋,任意一方可以先走,如果某个时刻使得任意一种颜色的棋子形成四个一线(包括斜线),这样的状态为目标棋局。
●○● ○●○●●○●○○●○
输入描述 Input Description
从文件中读入一个4*4的初始棋局,黑棋子用B表示,白棋子用W表示,空格地带用O表示。
输出描述 Output Description
用最少的步数移动到目标棋局的步数。
样例输入 Sample Input
BWBO
WBWB
BWBW
WBWO
样例输出 Sample Output
5
题解:还是爆搜,本题应该用广搜比较好,我写的程序是深搜
const dx:array[1..4,1..2]of shortint=((1,0),(0,1),(0,-1),(-1,0));var a:array[1..4,1..4]of char; i,j:shortint; ans,n:longint;function check:boolean;var i:shortint;begin for i:=1 to 4 do begin if(a[i,1]=a[i,2])and(a[i,1]=a[i,3])and(a[i,1]=a[i,4])then exit(true); if(a[1,i]=a[2,i])and(a[1,i]=a[3,i])and(a[1,i]=a[4,i])then exit(true); end; if(a[1,1]=a[2,2])and(a[1,1]=a[3,3])and(a[1,1]=a[4,4])then exit(true); if(a[4,1]=a[3,2])and(a[4,1]=a[2,3])and(a[4,1]=a[1,4])then exit(true); exit(false);end;procedure dfs(step,dir,x1,y1:integer;last:char);var i,j,k,x,y:shortint;begin if step>=ans then exit; if check then ans:=step else begin if step<>0 then begin a[x1,y1]:=last; a[x1+dx[dir,1],y1+dx[dir,2]]:='O'; end; for i:=1 to 4 do for j:=1 to 4 do if a[i,j]='O'then for k:=1 to 4 do begin x:=i+dx[k,1]; y:=j+dx[k,2]; if(x<5)and(x>0)and(y<5)and(y>0)and(a[x,y]<>last) then dfs(step+1,k,i,j,a[x,y]); end; if step<>0 then begin a[x1,y1]:='O'; a[x1+dx[dir,1],y1+dx[dir,2]]:=last; end; end;end;begin for i:=1 to 4 do begin for j:=1 to 4 do read(a[i,j]); readln; end; ans:=100; dfs(0,0,0,0,'0'); writeln(ans-1);end.
0 0
- wikioi1004四子连棋
- wikioi1004 四子连棋
- wikioi1004 四子连棋 解题报告
- 四子连棋
- 四子连棋
- 四子连棋
- 四子连棋
- 天梯 -- 四子连棋
- CODEVS1004 四子连棋
- [codevs1004]四子连棋
- 【宽搜】四子连棋 WikiOI 1004
- Wiki OI 1004 四子连棋
- Wikioi P1004 四子连棋
- wiki-1004-四子连棋
- 【wikioi】1004 四子连棋
- wikioi 1004 四子连棋
- 【wikioi】1004四子连棋
- WIKI【1004 四子连棋】
- JSP表格页面布局问卷调查
- angular源码解读:forEach方法遍历
- Linux下长时间ping网络加时间戳并记录到文本
- BZOJ3533: [Sdoi2014]向量集
- MAC上安装rocketmq磁盘空间不足的问题
- wikioi1004 四子连棋
- leetcode_middle_2_406. Queue Reconstruction by Height
- 欢迎使用CSDN-markdown编辑器
- 聚类算法
- webpack压缩react
- Leetcode-138. Copy List with Random Pointer
- 今年暑假不AC HDU - 2037
- Qt学习笔记-----Graphics_View_Framework
- 欢迎使用CSDN-markdown编辑器