Codeforces Round 918 (Div. 4) Eに時間がかかった。けど、普通にFGより解かれているねぇ。
— titia (@titia_til) December 28, 2023
D 後ろから見る。
E 偶奇ごとに累積和(S0,S1)をとる。S0[i]-S1[i]の値がそれ以前に現れていればYES
F [a,b]と[c,d]が交わるのは、a<cとすると、d<bのとき。第一要素を降順にみてBITで処理。
G ダイクストラ
2023年12月30日土曜日
Codeforces Round 918 (Div. 4)
2023年12月28日木曜日
RECRUIT 日本橋ハーフマラソン 2024冬(AtCoder Heuristic Contest 029)
RECRUIT 日本橋ハーフマラソン 2024冬(AtCoder Heuristic Contest 029)
— titia (@titia_til) December 26, 2023
これ、という方針を思い付けなかったので評価値ゲーに賭けた。持っている手札の組み合わせで余りが少なくこなせそうなプロジェクト&手札を高評価にした。カード選択のときは、そこにprice分をマイナスした評価値にする。
こう書いたけど提出して正解だったらしい。
— titia (@titia_til) December 27, 2023
ラスト前の提出(延長戦に提出してみたらpretest60位相当)をシステムテストのseedで実行して計算したところ、107101340635点で100位相当でした。
そのままだったら60位→100位で40位も落ちてたって何。 https://t.co/fTIu1a1EVo
え!
— titia (@titia_til) December 27, 2023
順位は95位とかなんだけど、これで提出したらベストが二つあったらしい。
input0541で19902点(実際のベストは16814点)
input0866で89945点(実際のベストは88408点)
100位あたりでベストを取っている人少ないから、こっちにした方がちょっとお得(?)だったなー。
2023年12月24日日曜日
Pinely Round 3 (Div. 1 + Div. 2)
Pinely Round 3 (Div. 1 + Div. 2) 二時間半あってDが解けなかった。こういう整数問題は苦手じゃないつもりだったんだけど……。
— titia (@titia_til) December 23, 2023
A x>0,x<0,y>0,y<0があるか調べる。
B 2ベキだけ考えればよい。
C 大きいLからできるだけ小さいRに貪欲に組み合わせる。
D. Split Plus K
2023年12月21日木曜日
Codeforces Round 916 (Div. 3)
Codeforces Round 916 (Div. 3)
— titia (@titia_til) December 19, 2023
A Counter
B 大きい数を昇順→小さい数を降順
C 累積和
D 上位三個を全探索
E A[i]+B[i]が大きい方から使う
F 子孫の個数が多い枝を調べる
G1 グラフを作ってSCC
G2. Light Bulbs (Hard Version)
2023年12月20日水曜日
AtCoder Grand Contest 065
AtCoder Grand Contest 065 A一完でした。
— titia (@titia_til) December 17, 2023
A startの数を決めたら、残っているそれより小さい数へ(最も小さいときは最大のものへ)遷移するのが最適。また、たくさん個数があるものは先に使いたい。そのうちどれを最初に使うべきかは、その個数あるもの同士の隣接差から決定できる。
B - Erase and Insert
C - Avoid Half Sum
2023年12月17日日曜日
トヨタ自動車プログラミングコンテスト2023#8(AtCoder Beginner Contest 333)
トヨタ自動車プログラミングコンテスト2023#8(AtCoder Beginner Contest 333) Fで三乗DPしか思いつかずひどいことに。
— titia (@titia_til) December 16, 2023
C 全部列挙
D 木DP
E 後ろから見る。
F N-1での答えに、x=2^N-1として、1/x,2/x,4/x,...みたいなのを掛けて足すとNでの答になる。高速化が思いつかず埋め込みしようとかして破滅。
F - Bomb Game 2
G - Nearest Fraction
2023年12月13日水曜日
Kotlin Heroes: Episode 9 (Unrated, T-Shirts + Prizes!)
E A[i]>B[i]にしておく。A内の[:i]までの部分列の和のmaxは累積和とそこまでの最小値を使えば求まる。答えは、Aのmax+Bのmaxか、A[:i]のmax+A[i:]のmax
— titia (@titia_til) December 11, 2023
F 各辺の寄与を求める。寄与をソートして大きい方を*1にして良い。
H. Sum of Digits of Sums
HACK TO THE FUTURE 2024 (AtCoder Heuristic Contest 027)
HACK TO THE FUTURE 2024 (AtCoder Heuristic Contest 027)
— titia (@titia_til) December 10, 2023
・序盤は、「各マスを何ターンごとに訪れるのが最適かは二分探索で分かる」というのを利用しようとしていたが上手くいかず断念。
AtCoder Beginner Contest 332
AtCoder Beginner Contest 332
— titia (@titia_til) December 10, 2023
C "0"で分ける。
D bfs
E N*3^NのDP。PyPyじゃTLEでRUSTに直した。
F (a,b)と(c,d)→(a*c,b*c+d) を遅延セグ木に乗せる。ずっと双対セグ木でいけると思い、いけないと気付くまで時間かかってしまった。
F - Random Update Query
estie プログラミングコンテスト2023 (AtCoder Regular Contest 169)
estie プログラミングコンテスト2023 (AtCoder Regular Contest 169) AB二完でダメ。
— titia (@titia_til) December 9, 2023
A 二項係数で寄与を表せる。
B 尺取りで和Sでどこまでいけるか求めた後DP。尺取りをバグらせた。
C DPは無理そうだから、包除原理かと思ったが、解説見たら違ったみたい。