2024年8月12日月曜日

AtCoder Beginner Contest 366

 Dまで四完と失敗。

コンテスト後のツイート

E - Manhattan Multifocal Ellipse

 コンテスト中の方針でAC。

 xに対して、x方向に関するマンハッタン距離の和を求める関数を得なくてはいけないが、そこでミスがあった。
 ただ、それを修正しても、二分探索で上限・下限を求める方針だとTLEし、尺取りに直さなくてはいけなかった。

 解けなくてはいけない問題だったのは確かだが、実装もやや面倒だし、簡単というわけでもない気がする。こっちよりFがACできなかった方がまずい。

F - Maximum Composition

 解法ツイートを参考にAC。

 コンテスト中、うまくソートする問題だろうと思い、

・C(Ax+B)+D>A(Cx+D)+B

 を変形して、

・BC+DとAD+B

 の大小比較を考えれば良いというところまでは書いた。なんでそれで解けなかったんですか? そこで式変形は止まっている……。

 さらにいうと、昔、この問題はオンサイトで自力ACできているのに、今回解けなかったのはひどい。

2024年8月10日土曜日

yukicoder contest 440

 AとCの二完。Bが解けず。


No.2836 Comment Out

 全く思いつかなかった。

 「数を増やす操作」を繰り返したものが最大だと思い込み、たとえば、N=5なら、

・5 4 3 2 1

 とか

・2 4 5 3 1

 みたいな列が最大だと思い込んでしまった。(それ以下のものは全て作れる)

 しかし、この判定が意外と難しく、そこで間違えていると思ってしまった。(今でも、やり方が分かっていません)

 実際の解法は単純でした。実験コードをすぐ書くべきでしたね。
 Ratedコンテストならもっと早く実験していると思うのでACできただろうと思うものの、多分実験コードを書いたのはWAを二個くらい出した後だし、ACするまでに時間かかっただろうな……。

No.2838 Diagonals

 自力AC。

 これは、(実験せず)頭の中で考えて正解を導けた。嬉しい。


2024年8月8日木曜日

Codeforces Round 964 (Div. 4)

 全完。

コンテスト後のツイート




2024年8月5日月曜日

AtCoder Regular Contest 181

 ACの二完。

コンテスト後のツイート

B - Annoying String Problem

 解法ツイートを参考にAC。

 Sの一文字目がTの何文字目にあたるのか? を調べる方針は良かったし、TがSの繰り返しだろうというのも当たっていた。
 そこまでくればgcdで周期を考えるのは自然なはずだが、これを思い付けなかった。うーん。

 また、Tの長さを計算したら負になる場合がある、ということに気付かずWAやREを重ねてしまった。
 考察は後一歩だった気もするが、ここに引っかかることを考えるとACは遠かったね。

D - Prefix Bubble Sort

 概ね自力でAC。(コンテスト後にツイートなどは見たけど、あまり参考にせず解いた)

 xという操作を適用すると、「x以前にあって、転倒数への寄与が0より大きいものたち」は、indexが一つ下がり転倒数への寄与が一つ小さくなる、ということには割合すぐ気付けた。
 が、実装が上手くできず、Aが広義単調増加であることをどう使えば良いかも迷った。長いこと遅延セグ木でどうにかならないかと考えていたけど上手くいかず、Aが広義単調増加ならクエリに関するimos法でできると気付けた。(これが公式解説の方法だった)

 700点にしては簡単で、時間があれば自力で解けたとは思うけど、Cの後こっちを解いていれば解けたという気はあまりしない。

2024年8月3日土曜日

yukicoder contest 439

 Aしか解けず。


No.2828 Remainder Game

 解説AC。

 結構長い時間かけて考えても分からず、解説を見たら、誤読に気付いた。A_1~A_5の値(のmultiset)を求めなくてはいけないと考えていたが、和さえ求めれば良かった。
 それなら自力で解けた気もするが、実際に考えたわけではないから分からない。

No.2829 GCD Divination

 普通の期待値DPなのに時間がかかってしまった。(答えが合わず、解説も見た)

 なお、コンテスト中に解けなかったのは、全てのNについて答えを求めないとDPが回らないと勘違いしたため。約数だけ調べれば大丈夫ですね。

 

2024年8月2日金曜日

日本レジストリサービス(JPRS)プログラミングコンテスト2024#2(AtCoder Beginner Contest 364)

 Fまで六完。

コンテスト後のツイート

G - Last Major City

 解説AC。(解説放送も見た)

 最小シュタイナー木を履修した。分かってしまえば難しくない。Kが高々10というところから3^NのDPと気付ければ自力で思いつくことも可能だったか?


Educational Codeforces Round 168 (Rated for Div. 2)

 Dまで四完。

コンテスト後のツイート

E. Level Up

 SortedSetをセグ木上の二分探索に直してAC。
 自分のセグ木二分探索のライブラリの書き方が変だったので、修正に時間を要したけど、どう書くのが良いのだろう?

 とりあえず、セグ木の演算が足し算で、
・sum(0, index)がある値以上になる最初のindexを返す
 というセグ木二分探索は実装した。

 一般的には何を二分探索で求めるようにすれば良いんだろう?