NISHIO Hirokazu
[Translate]
ABC124D
D - Handstand
考えたこと
反転させる領域が重なってる時、同じ結果をもたらす重なってない反転方法があるから、重なってないと仮定しても差し支えない
区間が交わらないとしてよい
区間反転の合成はXOR
よって、K個の0の塊をひっくり返して、1番長い1の塊を作れば良い
先頭と末尾に長さ0以上の1の塊があるとみなす、条件分岐をなくすため。
i番目の1の塊の始点と、i+k番目の1の塊の終点の距離が最大になるところを求めればいい
線形時間で始点と終点を列挙して、線形時間で最大値を求める
公式解説OK
Tweet
Related Pages
帰着訓練
区間反転の合成はXOR
→
abc181
×
区間が交わらないとしてよい
×
左右から累積積
→
ABC181E
→
帰着する力
×
小さい制約の問題
×
nが8前後の制約
×
nが10~20前後の制約
×
n_が_30~40前後の制約
×
n_が_50前後の制約
×
n_が_300~500前後の制約
×
n_が_1000_前後の制約
×
小さな定数に注目
×
変数を一つ固定する
×
3つのものの真ん中を固定
×
行列の半分
×
xとyにわける
×
操作の不変量に注目
×
偶奇に注目
×
偶奇で場合わけ
×
操作の順番によらない
×
時間軸反転
×
元に戻せる操作
×
左右から累積積
×
等差数列の加算は差に注目
×
区間反転の合成はXOR
×
grundy数
×
余事象を引く
×
k番目の数を二分探索
×
xorは繰り上がりのない足し算
×
xorは桁ごとに分割可能
×
45度回転
×
差の最小化は中央値
×
代表的なグラフで考察
×
木は二部グラフ
×
木の直径
×
最大化を二分探索で
×
選択肢が少ない方から貪欲
×
二次元座標を二部グラフにする
×
順序を有向グラフにする
×
凸関数の極値は三分探索
×
単調増加ならしゃくとり法
×
等比数列は剰余に注目
×
n進数は剰余に注目
×
括弧列は上り下り
×
競技プログラミングで解法を思いつくための典型的な考え方
×
keyence2020_d
×
abc152_f
×
agc026_c
×
arc060_a
×
joi2008ho_c
×
abc034d
×
abc138e
×
abc023d
→
競技プログラミングで解法を思いつくための典型的な考え方
"
Engineer's way of creating knowledge
" the English version of my book is now available on
[Engineer's way of creating knowledge]
(C)NISHIO Hirokazu / Converted from
[Scrapbox]
at
11/23/2025, 2:59:09 PM
[Edit]