556.1

500が解けないのは頭悪いから。

250

それぞれの地点に点数が割り当てられていて、その点に到達したときに現在の得点に対してXORされる。地点間の隣接関係が与えられるので、開始点から自由に移動して良いとき、得点の最大値を答えよ、という問題。


得点の範囲が小さいので、得点と現在位置をメモしておいて探索するだけ。

500

N桁の整数が与えられる。先頭から順番に左右に振り分けていって新しい数字を作るとき、指定された値以上で一番小さい作れる値を答えよ、という問題


全パターンをメモ付き探索しても実入りがないので、作れる辞書順で先頭のものをまじめに計算する必要があるそうな。先頭K桁が決まっているときに、それが作れるかどうかはDPで計算できるので、頑張りましょうとのこと。

1000

2回渡ると壊れる橋がある状況で、異なる二地点間を数回往復したい人が二人いる。可能なパスはあるかどうか答えよ、という問題。


なんかフロー。