Bまで二完。
コンテスト後のツイート
AtCoder Regular Contest 155 AB二完。
— titia (@titia_til) January 29, 2023
A 求めたいS'が存在するなら、S[::-1],S,S[::-1],...,S[::-1]という形になる
B a+bとa-bが0で折り返す直線の集合になる。tatyamさんのSortedSetを使って実装した。感謝!
C 五分遅れで実装終わったがWAでした。
C - Even Sum Triplet
解説AC。
難しい問題だとは思うけど、色々と間違った考察をしていたのがひどい。
たとえば、
・奇数同士の交換ができる場合、奇数を左側に集めて比較して良い
は検討したのに、ダメだと結論してしまった。一度くっついた奇数同士は距離2以上離れない……などと考え、実装に苦戦したが、その考察自体が間違っている。
まあこれは、
A=[2, 2, 3, 5, 2, 2, 2]
B=[3, 2, 2, 2, 2, 2, 5]
みたいなとき、AからBは作れないよね、といったあたりが根拠だった。
つまり、解説の最初の部分、
・奇数2項、偶数1項に対する操作が(一回でも)可能だった場合、その操作可能性は操作前後で変化しないので、AとBで一致している必要がある
というのを見逃したのが敗因か。この部分を思い付ければ違った可能性はある。
ただ、それ以外でも、解説の[1]の場合、偶数は多重集合と一致していれば良いと思っていたりと色々ひどかった。
なんらかの標準系(今回なら奇数を左に寄せた形)にした後で比較して良いのは、(標準系にするまでの)操作が可逆なときなはず、というのは頭に入れておこう。
0 件のコメント:
コメントを投稿