ラベル カタラン数 の投稿を表示しています。 すべての投稿を表示
ラベル カタラン数 の投稿を表示しています。 すべての投稿を表示

2025年5月17日土曜日

yukicoder contest 467

 ABCEの四完。Dは、問題の意味がぱっと理解できなかったから飛ばしたけど、分かっても難しかった。


No.3143 Colorless Green Parentheses Sleep Furiously

 WAが出た後、テストケースを見てAC。

 カッコ列が正しくなければダメ、というのはOK。その上で、
 できるだけ少ない個数の1を加えたとき、何個加えることになるかを知りたい。

 ()なら、(1+1)+1にしなくてはいけないが、
 ()()なら(1+1)+(1+1)で良い。

 (())なら、((1+1)+1)+1にしなくてはいけないが、
 (()())なら、((1+1)+(1+1))にする。

 カッコ列の対応を考えて、その対象範囲に自分のカッコだけしかないときは、()+1としなければならない、というのがなかなか気付きにくいポイント。

 実装では、最初に、どの"("がどの")"と対応しているかindexの対応を調べておき、((...))となっているようなら、後ろか前かに+1を置けば良い。

No.3145 Astral Parentheses Sequence

 解説AC。難しい。

 括弧列の個数(カタラン数)をDPで求める方法を応用するとこの問題のDPも導ける。ただ、括弧列の個数を求めるDPがそれほど明らかではないため、それと似た方法でこれもいけるというのは直感的に分かりづらい。

No.3146 RE: Parentheses Counting

 解説AC。難しい。

 解説の最初にある漸化式(三乗の計算量になるやつ)を自力で出そうとしていたが、それすらできなかった。
 ネストの深さが0の部分がカタラン数の積になるっていうところが思いつかない。ここは主客転倒で考えているのか。
 その後の、計算量削減の式変形も難しい。カタラン数が満たす漸化式を知っていればいけるかもしれないが。

 自力で解くには、実験→oeisしかなかった気がする。

No.3147 Parentheses Modification and Rotation (RM Ver.)

 解説AC。

 解説を見てしまったけど、これは自力で解けて良かった。括弧列の累積和(いつものやつ)を使い、最大値・最小値から答えが導ける。
 タイプ1が右回転なのがちょっと引っ掛けな気がした。S[1:]+S[0]だった方が直感的に分かりやすい。

No.3148 Min-Cost Destruction of Parentheses

 01 on Treeの類題ということはツイートで知っていたのに、大分時間がかかってしまった。この自分のコードなどを参考にしてどうにかAC。
 当時のコードはちょっと不思議なことをしていた。大体同じだけど、今のコードの方が自然な気がする。

 括弧列から木を作るパートはスタックで行えば良い(参考)。この部分で詰まらないようにしたい。

2023年1月21日土曜日

yukicoder contest 374

 Bで睡魔に襲われA一完。


No.2195 AND Set

 コンテスト中、クエリ3で出力するものがSのandではなくorであるようなコードを書き(各bitに何個数字が入っているか管理し、それが0より大きいもののorを出力)、修正方法が分からなくなり寝てしまった。

 結構簡単に修正でき、現在何個Sに入っているかを持つようにするとandでも求められた。

No.2196 Pair Bonus

 自力AC。

 DPが必要に見えて、実は必要ないのは面白い。

No.2197 Same Dish

 自力AC。
 余事象を考えれば良いと気付いたら、後はわりとすんなり解けた。

No.2198 Concon Substrings (COuNt-CONstruct Version)

 自力AC。
 onononononon……と並べておいて、間にcを挿入する方針で解いた。
 解説とは違ったけれど、writerさんのブログによると、この方針で解いた人が多かったらしい。

No.2199 lower_bound and upper_bound

 解説AC。

 経路数の数え上げに帰着するのが難しい。とはいえ、総和を固定すれば経路数になるというのは言われれば納得できるもの。制約からいって、何かを固定して考えるのは自然だから、思いつきたいものではある。

 その後の計算は、二項係数の差で求められるのはこの問題で覚えていたが、引く値(というか、反転の軸となる直線の式)を間違えて苦労してしまった。

2021年6月15日火曜日

AtCoder Beginner Contest 205

 Eが解けずに終了。ただ、Eは知識問題に近かったので、まあ仕方ないか。次に類題を見たときは解けるようにしたい。


E - White and Black Balls

 解説AC。
 経路数の問題なのは分かるが、それをどうやって求めればいいか、というところで詰まった。解説の図を見てなるほど、となった。

 この求め方は見たことがあったと思うが、身に着けておかなくてはいかない知識とは思っていなかった気がする。
 次出題されたときは解きたい。