kmjp's blog

競技プログラミング参加記です

yukicoder : No.2228 Creeping Ghost

これはなんかすんなり解けた。
https://yukicoder.me/problems/no/2228

問題

5*5のグリッドがあり、コマが左上マスにおいてある。
時刻1ごとにコマをどこか隣接マスに動かすものとする。
4K回目~(4K+3)回目の移動時は、4(K-1)回目の移動後にいたマスと同じ行・列にいてはならない。
条件を満たすように延々動くことはできるか。

解法

まず12手で「右右左下・右右左下・右右下下」と左上から右下に移動する。
次に180度回転してまた12手戻る、というのを繰り返せばよい。

string S="RLRDRLRDRRDDLRLULRLULLUU";
int T;
void solve() {
	int i,j,k,l,r,x,y; string s;
	
	cin>>T;
	FOR(i,T) cout<<S[i%S.size()];
	cout<<endl;
}

まとめ

Writer解ともTester解とも違うか。