掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
騎士の巡回問題の解の数の表示と経路表示をするには? (ID:38550)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません・・ できていませんでしたね・ 以下のようになりました! ところで、時間計算量はeを使って求められるようになったのですが、解の数はどれを見ればよろしいのでしょうか? よろしくお願いします・・ #include <stdio.h> #define M 8 #define N 5 int array[N][N]; int move[M][2] = { {2,1}, {1,2}, {-1,2}, {-2,1}, {-2,-1}, {-1, -2},{1, -2}, {2, -1} }; long n_a = 0; long e[5]={0,0,0,0,0}; int main(void) { int i,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) { array[i][j] = 0; } } array[0][0] = 1; try(0,0,2); return 0; } void try(int x, int y, int a_move) { int i, nx, ny; for(i=0;i<M;i++) { nx = x+move[i][0]; ny = y+move[i][1]; if(nx<0 || nx>=N) continue; if(ny<0 || ny>=N) continue; if(array[nx][ny]==0) { array[nx][ny] = a_move; if(a_move==N*N) if(e[2]<(1000*1000*1000)){ e[2]++; if(e[1]<(1000*1000)){ e[2]=0; e[1]++; if(e[0]<1000){ e[1]=0; e[0]++; } } } printf("%d\n",e[2]+e[1]+e[0]); } else{ try(nx, ny, a_move+1); } array[nx][ny] = 0; } } }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.