589.1

ゆとり仕様かと思ったらライブラリゲー。

250

文字列中のある文字を全部特定の別の文字に置き換えるという操作を繰り返して、回文にしたい。置き換えが発生する延べ文字数の最小値を答えよ、という問題。


結局二回置き換えする理由はどこにもないので、置き換え候補のグループの中で、一番登場回数の多いのに置き換えてやる。

450

三色の歯車があって、くっついてる歯車は逆向きに回る。歯車の色とくっついている関係が与えられるので、全部の歯車がちゃんと回って、同じ色の歯車は同じ向きに回るようにするには、いくつ邪魔な歯車を除去すれば良いか答えよ、という問題。


実は同じ色の歯車は絶対にくっついていないらしいので、三色のうち特定の色が時計回りに回って、他二色は半時計周りに回る、というくっつき方にならないとおかしい。なので他二色の方で、くっついていなければ良いので、そうならないように除去してやる。つまり最小点カバー。しかも二部グラフなのでフローやるだけ。

900

特殊なバイナリ列にビット操作して、先頭からM文字と末尾からM文字が同じになるようにしたい。操作回数の最小値を答えよ、という問題。


操作が二種類あって、Mが大きいときと小さいときとで別々の処理を書いてやればおしまい。サンプルが割と不親切。