363.1

250

N人の人が円卓に座っている状態で、握手をしようとする時、全員が必ず誰か一人とだけ握手する方法は何通りあるかという問題。ただし他人の手と交差するような握手はできない。


Aさんを中心に考えて全員と握手する場合、テーブルの右側にx人で左側にy人いるなら、Aさんの手と交差できないので、x人とy人がそれぞれ別テーブルに座っているようなもの。ということで再帰的にやればいいんだけど、メモしないと終わらないよ、というある種のフィボナッチ。

500

デジタル表示された数字を鏡に映したときに同じもののままの数字はいくつあるか答えよ、という問題。


範囲がlongなので全数テストはできないけれど、うまくいくものはそんなに多くないので、うまくいくものを全部数えることはできるらしい。


外側から再帰的にうまくいくものをカウントしようとしていたけれど、文字列のままやっていて8の次が見当たらないというルーチンになってしまって撃沈。それ以外にも微妙に間違っているっぽい。

1000

N個の荷物を目的地に届けたいけれど、車でのコストと歩いてのコストと路上駐車するコストが色々と変わる。歩いている時は1個までしか持てなくて、車の時に持てる数は決まっている。このときコストを最小にしましょうという問題。


取り敢えず車に遠い方から詰めるだけ詰んでしまう。で、そのうちの一部を残した場合、どこまで行くのが一番安上がりかを考える。というのを一通りやればいいんじゃないの?問題があるとしたら遠い方から詰めるだけ詰むという箇所。そこを全通り試すようなルーチンに拡張できれば通ると思う。拡張しないで通るなら、見掛け倒しかなぁ。