-6

20x30 の「方眼紙」が与えられた場合、任意の偶数 n 個のセルをマークして、すべてのセルに奇数個のマークされた隣接セルがあり、すべてのセルが接続して 1 つの「ピース」を形成するようにします。隣接セルは、すぐ隣接するセルとして定義されます。(斜めのセルを除くすべての周囲のセル)。

きれいなアルゴリズムを考え出すのに問題があります。私は現在それを持っていますが、それは非常に面倒で紛らわしいものであり、それを行うためのより良い方法が必要であることを知っています.方法がわかりません. プログラムを実行する時間があまりなく、Ada でコーディングする必要があるため、すぐに実装できるアルゴリズムを探しています。これは私の強みではありません。私は現在、このように作成した CanMark(cell); を使用しています。-- セルをマークできるかどうかをチェックします。HasProblem(セル); -- セルの周囲にマークされたセルが偶数個あるかどうかをチェックします。HasFix(セル); -- 現在存在する問題を解消するためにマークできる一連のセルがあるかどうかを確認します。

現時点ではコードを持っていませんが、家に帰ったら投稿します。

どんな助けでも大歓迎です。

わかりづらくてすみません。私はあなたが私のために私の問題を解決するのではなく、指示を求めているだけです。これはグラフ関連のアルゴリズムを使用して実行できると思いますが、確実に知るには十分ではありません。現時点では自分のコードを持っていませんが、できるようになったら必ず投稿します。

4

1 に答える 1

0

私は小さく始めて、積み上げます。最小 (n=1) は次のとおりです。したがって、n=1 の解は存在しません。次にn=2にしてみます。選択肢は 1 つだけです: ** これは機能します。では、n=3 はどうでしょうか。機能しません。n=3 の解決策はありません。では、n=4 にするにはどうすれば足すことができるでしょうか。n=6? パターンを形成できますか?

于 2012-10-29T18:14:57.293 に答える