・・・2^20っていうのがちょっと無駄な気がする。ocntでいいはずだ最大20C10で、20万程度。計算量は、、3億くらい。これでもちとオーバー気味。最初の文字と最後の文字は、入力の最初と最後から確定する。最初の文字だけ確定させるだけでも計算量は間に合うレベルになるはず。19C10=10万くらいなので、総計算量1億5千万程度。ループ内部はシンプルなので大丈夫だろう。文字パターンのループを一番外側のループにするとメモリは40*20くらいでいいので、メモリ的にも問題ない。ところでxとoの並び替えをするのに、外側のループだからnext_permutationを使っても多分問題ないのだが、何となくnext_cmbという自前ライブラリを使ってみた。コンビネーションの列挙で計算がシビアなときはこの関数が役に立つと思う。使い方が微妙に癖があって、値が0のときを特別扱いする必要があるのでバグを生みやすい。実際にバグっていたのだがテストするまで見つけられなかったので、危険ではある。まあ最初の文字だけ確定とか、こんな微妙な調整をするのも綺麗じゃなくて何だなと思う。スカスカなDPなので、メモ化再帰にするのが良かったかも。このくらいの正答率(25%くらい)の問題が僕にはすぐには解けなくて練習にちょうどいいみたい。OpenTipsDiv1SRM455SRM456SRM457SRM466SRM467SRM468SRM469SRM470SRM471SRM473SRM474SRM475SRM476SRM477SRM478SRM479SRM480SRM481SRM482SRM483SRM484SRM485SRM486SRM487SRM488SRM489SRM490SRM491SRM492SRM493SRM494SRM495SRM496SRM497SRM498SRM499SRM500SRM502SRM503SRM505SRM504.5SRM506SRM507SRM508SRM510SRM511SRM512SRM513SRM514SRM515SRM516SRM517SRM518SRM519SRM520SRM521SRM522SRM523SRM524SRM525SRM526SRM527SRM526.5SRM528SRM529SRM530SRM531SRM532SRM533SRM534SRM535SRM536SRM537SRM538SRM540SRM541SRM543カウンター357942リンク集SigmarのProfile。