[ブルーブリッジカップ]ラングトンのアリ(単純なテンプレートのタイトルをDFS)

タイトル説明

ラングトンのアリは、クリス・ラングトンが提示し、1986年にあったセルオートマトンに属する、来ます。

正方格子面は、黒または白の塗りつぶしです。これでグリッドの正方形は「アリ」を持っています
アリの頭の向きは:前記左右の垂直面。

アリ移動規則は非常に単純である:
アリヘイグ、90度右折、細胞に白血球、前方のセルがあれば、
アリ白血球場合、90度左、黒グリッドにグリッド、および前進1つのスペース。

ルールはシンプルですが、アリの非常に複雑な挙動。私はラインを起動するときに、繰り返しのように、ほぼ左右対称があるでしょうが、関係なく、初期状態の、アリが長い混沌活動した後、ルールが開くだろう左の「高速道路を。」

蟻の経路は事前に予測することは非常に困難です。

あなたの仕事は、初期状態において、nは左足の位置ラングトンのアリコンピュータシミュレーションです。

エントリー

入力データラインの最初の行は、MN二つの整数(3 <M、N <100である )、 正方格子の行と列の数。
次は、データのm行です。
データの各行は、スペースのN個に分割されています。0は白セルを表し、ヘイグ1を表します。

xysk、xyは整数、行と列の数にアリ(行番号は0から番号付けされている右の列数の増加に左、上から下に向かって成長した)である:次のデータの行です。Sは大文字で、ヘッドアリの向きを示す、我々は合意された:それぞれ上下と:表現UDLR。kはアリのためのステップの数を表します。

輸出

出力データは、スペースで区切られた整数PQ、k個のステップの後に、それぞれANT、格子の行番号と列番号です。

サンプル入力

5 6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2 3 L 5

サンプル出力

1 3

問題解決のためのアイデア

単純な検索DFS、行列番号のランクに注意を払うが、ゼロベースれます

コード

package 兰顿蚂蚁;
import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int m=in.nextInt();
		int n=in.nextInt();
		int [][]a=new int[110][110];
		for(int i=0;i<m;i++)
		{
			for(int j=0;j<n;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int x,y,k;
		x=in.nextInt();
		y=in.nextInt();
		char s = in.next().charAt(0);
		k=in.nextInt();
		//System.out.println(x+" "+y+" "+k);
		dfs(x,y,s,k,a);
		
	}
	public static void dfs(int x,int y,char s,int k,int a[][])
	{
		if(k==0)
		{
			System.out.println(x+" "+y);
			return ;
		}
		//System.out.println(a[x][y]);
		//System.out.println(x+" "+y);
		if(a[x][y]==1)
		{
			a[x][y]=0;
			if(s=='U')
			{
				dfs(x,y+1,'R',k-1,a);
			}
			if(s=='R')
			{
				dfs(x+1,y,'D',k-1,a);
			}
			if(s=='D')
			{
				dfs(x,y-1,'L',k-1,a);
			}
			if(s=='L')
			{
				dfs(x-1,y,'U',k-1,a);
			}
		}
		else
		{
			a[x][y]=1;
			if(s=='U')
			{
				dfs(x,y-1,'L',k-1,a);
			}
			if(s=='R')
			{
				dfs(x-1,y,'U',k-1,a);
			}
			if(s=='D')
			{
				dfs(x,y+1,'R',k-1,a);
			}
			if(s=='L')
			{
				dfs(x+1,y,'D',k-1,a);
			}
		}
		
	}

}

公開された20元の記事 ウォンの賞賛0 ビュー3859

おすすめ

転載: blog.csdn.net/weixin_44544406/article/details/104293762