2025年5月19日月曜日
Codeforces Round 1025 (Div. 2)
2025年5月17日土曜日
yukicoder contest 467
No.3143 Colorless Green Parentheses Sleep Furiously
No.3145 Astral Parentheses Sequence
No.3146 RE: Parentheses Counting
No.3147 Parentheses Modification and Rotation (RM Ver.)
2025年5月15日木曜日
AtCoder Regular Contest 197 (Div. 2)
D setとして、A[i]がA[j]を含むならiはjの親。木を作ったときAになるか十分条件をcheck。A[i]=A[j]の重複度の階乗の積が答え。
— titia (@titia_til) May 4, 2025
E - Four Square Tiles
2025年5月14日水曜日
AtCoder Beginner Contest 405(Promotion of AtCoder Career Design DAY)
AtCoder Beginner Contest 405(Promotion of AtCoder Career Design DAY) Fまで
— titia (@titia_til) May 10, 2025
C A[i]*(iより右の和)を足し合わせる
D BFS
E 一番右にあるAより左にあるBの個数で場合分け
F 線分の間を+1すると、クエリは階段を何段上り下りするかになる。実装はセグ木で。
G Mo's algorithmと思ったが分からず。
G - Range Shuffle Query
2025年5月13日火曜日
Codeforces Round 1024 (Div. 1)
Codeforces Round 1024 (Div. 1) ABDの三完。
— titia (@titia_til) May 11, 2025
A 中央からぐるぐる
B (偶数番目の転倒数+奇数番目の転倒数)の偶奇は不変。
D 尺取り。LIS/LDSのDPで、最初の要素を消したときにどちらかのDPの一ヶ所が消える→LISかLDSかは、以前どちらを増やしたか見る。A[i]に近いものを消せばOK。SortedSetで実装。
C. 23 Kingdom
2025年5月7日水曜日
AtCoder Beginner Contest 404(Promotion for Engineer Guild)
AtCoder Beginner Contest 404(Promotion for Engineer Guild)Eで右側へ行けると誤読して時間を食う。Gは牛ゲーに見えるけど、どういう最短経路に帰着できるか分からず。
— titia (@titia_til) May 3, 2025
B 回転四通り試す。
C 次数は2か? 全頂点繋がっているか?
D 2^(2*N)全探索
E すぐ左の1へ行くまでの手数を求めていく。
F - Lost and Pound
G - Specified Range Sums
2025年5月3日土曜日
yukicoder contest 466 オムニバスコンテスト
No.3134 二分探索木
No.3137 Non-Intersect Chord Triangle Game
2025年4月29日火曜日
AtCoder Beginner Contest 403(Promotion of AtCoder Career Design DAY)
AtCoder Beginner Contest 403(Promotion of AtCoder Career Design DAY) Fまで。
— titia (@titia_til) April 27, 2025
C Xがクエリ2で指名されたか、(X,Y)がクエリ3で指定されたか。
D Counterを使い、連結成分ごとDP
E Trie木
F 最初BFSで全列挙しようとしたりしてダメ。そのまま掛け算できるかで分けるとDPできる。
G - Odd Position Sum Query
BrainPad プログラミングコンテスト 2025 (AtCoder Heuristic Contest 046)
BrainPad プログラミングコンテスト 2025 (AtCoder Heuristic Contest 046)
— titia (@titia_til) April 26, 2025
BFSでブロックを置かない経路を求めた後、序盤から見て行って、ブロックを置いた方が点数が向上するなら更新、を書いていました。
五分前くらいに書き終ったけど、提出したらTLEが出てダメでした。
https://t.co/yIqj6QO9az
— titia (@titia_til) April 26, 2025
コンテスト中のコード、バグがなかったから217445点で81位だったみたい。
本番コードに二行足しただけなんだけど、ChatGPTと一時間くらい相談してやっとTLEの原因に気付いたので、近くはなかった。
落ち着けば気付けたかもしれないが、コンテスト終盤に落ち着けるはずもなし。
2025年4月26日土曜日
yukicoder contest 465
No.3129 Multiple of Twin Subarray
2025年4月25日金曜日
CPCTF2025
個別の問題について。
— titia (@titia_til) April 20, 2025
Math Test:私はpyautoguiを使ってコピペ→計算機で計算→コピペを自動化しました!
Bench:最初「こぼちゃん」で検索していた。植田まさしといしいひさいちの絵の違いも分からなくなってしまったのか……と悲しみました。
No.3117 Reversible Tile
No.3119 A Little Cheat
No.3120 Lower Nim
No.3121 Prime Dance
AtCoder Beginner Contest 400
AtCoder Beginner Contest 400 Eまでは速かったがFが解けない。
— titia (@titia_til) April 5, 2025
C bは奇数として良い。
D 01BFS
E 平方数で、素因数が二つのもの
F どう見ても区間DPだが遷移が書けない。
F - Happy Birthday! 3
2025年4月18日金曜日
Kotlin Heroes: Episode 12
Kotlin Heroes: Episode 12 Eまで。FG分からず。Eまで二時間かかっているのひどい。
— titia (@titia_til) April 7, 2025
B sortしてindexの偶奇で場合分け。不等号を逆にしたりして2WA+25分。
C 累積和
D 最初に1を聞き、後は二分探索。思いつくまで時間かかったし、その後もバグらせた。
E 折り返す。overflowに気を付けましょう。
F. Weapon Upgrade
Codeforces Round 1017 (Div. 4)
Codeforces Round 1017 (Div. 4)
— titia (@titia_til) April 13, 2025
D ランレングス圧縮
E 各bitの個数を前計算
F m%k==0かで場合分け
G reverseしたかのflagと、合計とreverseした/してない場合の答えを持ち更新していく。
H 各数について、A中のどのindexに入っているか、というリストを持っておき、約数列挙&二分探索で頑張る。
AtCoder Beginner Contest 401
F https://t.co/uDLI6Yaggrの解説を見に行った。できた木の直径は、・元の木の直径・「つないだ点から最も遠い点への距離」の和+1のうち大きい方。「つないだ点から最も遠い点への距離」は列挙できるので、ソートして尺取り。
— titia (@titia_til) April 12, 2025
G 二分探索→二部グラフマッチング。
2025年4月12日土曜日
yukicoder contest 464
No.3101 Range Eratosthenes Query
No.3102 floor sqrt xor
No.3103 Butterfly Effect
2025年4月11日金曜日
AtCoder Grand Contest 071
計算量は四乗な気もするけどRUSTで提出するとAC。(PyPyだとTLEなので、もっと高速化できるのだろうけど……)
— titia (@titia_til) March 30, 2025
C サイクルがあってもYesになる条件を考えていた。二部グラフじゃないならYesっぽい! とか、サイクルの全部の頂点に毛が生えていて欲しい! とか。
C - Orientable as Desired
2025年4月3日木曜日
April Fools Day Contest 2025
B. Plinko
C. Would It Be Unrated?
D. Where Am I?
E. Pair Count
G. Definitely a Geometry Problem
2025年3月30日日曜日
AtCoder Beginner Contest 399
E Sの各文字にTのどの文字が対応するかを見る。Sの一文字にTの二文字以上が対応していたら-1。グラフを考え、各連結成分について、サイクルなら頂点数+1、x→xが含まれるなら頂点数-1、それ以外なら頂点数回必要。ただし、サイクルで26個が覆われたら-1。私の書き方だとS=Tでの場合分けが必要だった。
— titia (@titia_til) March 29, 2025
F - Range Power Sum
yukicoder contest 462
No.3075 Mex Recurrence Formula
No.3076 Goodstuff Deck Builder
2025年3月27日木曜日
Codeforces Round 1013 (Div. 3)
G sが大きい(s>k*kなら明らか。もっと小さくても良いと思うけど……)と答えはkかmax(1,k-2)になりそう。あとはシミュレーション。
— titia (@titia_til) March 25, 2025
2025年3月24日月曜日
AtCoder Regular Contest 195 (Div. 2)
AtCoder Regular Contest 195 (Div. 2) Cまで通したけど、Bは嘘解法だと思う……
— titia (@titia_til) March 23, 2025
A 前からと後ろから
B k=A_1+B_1を固定すれば判定可能。kの絞り方が分からない。結局、a in A,b in Bについてa+bを列挙し個数を見て、その個数がOKになりうるもののみ判定した。
C Rが奇数ならダメ。あとは地道にやる。
B - Uniform Sum
D - Swap and Erase
E - Random Tree Distance
2025年3月23日日曜日
AtCoder Heuristic Contest 044
AtCoder Heuristic Contest 044 98位。
— titia (@titia_til) March 16, 2025
答えの配列をANSとすると、NOW=[0]*Nと初期化したとき、
NOW[ANS[i][0]]+=T[i]//2
NOW[ANS[i][1]]+=T[i]-T[i]//2
としたときのNOWがTとできるだけ一致して欲しい。
→Tが大きいindexから貪欲に割り振るとそこそこ強い。
そこからほとんど伸ばせず終了。
Codeforces Round 1011 (Div. 2)
Codeforces Round 1011 (Div. 2) DもEも解けずまずい!
— titia (@titia_til) March 22, 2025
A 高々1回でOK
B 最初の0とその隣に処理。まだ0が含まれているなら、残りを処理。
C max(x,y)にkを足して桁が変わるところを見る。
D 考えていたのは嘘貪欲だったぽい。
E a=A[i]について、{a-B[i]の約数}が候補ということから絞ろうとしていた。
D. Serval and Kaitenzushi Buffet
E. Serval and Modulo
2025年3月22日土曜日
yukicoder contest 461
yukicoder contest 461 E、H、Jが解けず。J、AC提出を見て気付けなかったことにがっくり。Fで、N*Nの外側にもマス目があると勘違いし、一手足りない……とずっと悩んでたのもダメでした。
— titia (@titia_til) March 21, 2025
D 必要なときまで10秒時計を持っておく。
F 斜め移動
I ワープAB間の距離を前計算。あとは二分探索で。
No.3068 Speedrun (Hard)
No.3071 Double Speedrun
No.3073 Fraction Median
2025年3月15日土曜日
yukicoder contest 460
No.3056 Disconnected Coloring
No.3057 Tree Distance Set
No.3058 Deque and Brackets
2025年3月13日木曜日
Codeforces Round 1009 (Div. 3)
F 再帰。メモ化したらTLEし、しなかったらACした。
— titia (@titia_til) March 11, 2025
G 区間DPにしか見えないが上手くいかない→考え直したら区間DPだった。コンテスト中に書き終わらず、PyPyで出したらTLE→ChatGPTに翻訳してもらうもWA。オーバーフローを疑う(オーバーフローもしていた)が、元のPythonのコードにも間違いがあった。
F. Counting Necessary Nodes
G. Game With Triangles: Season 2
2025年3月10日月曜日
AtCoder Regular Contest 194 (Div. 2)
D 深さが低い方から見ていく。[l,r]で同じ深さから出る山の種類・個数を見て二項係数で計算。同じ山の判定方法が分からず、A[j]>A[j+1],A[j-1]になるA[j]を列挙したりしていた。それにさらにr-lの長さの条件も加えたらAC。
— titia (@titia_til) March 9, 2025
上手いhash値を求めれば良いとは思ったけど、上手くやれないまま無理矢理AC!
C - Cost to Flip
D - Reverse Brackets
ARC194のD、自分の提出は嘘解法ですね。
— titia (@titia_til) March 9, 2025
28
((()()())(()))((()())(()()))
で2を返します。(正解は4)
自分のハッシュだと、「((()()())(()))」と「((()())(()()))」を区別できないので、答えが1/2になってしまう。
E - Swap 0^X and 1^Y
2025年3月9日日曜日
Codeforces Round 1005 (Div. 2)
C 負を選ぶと、それ以降は全て負のものを選ぶことになる。
— titia (@titia_til) February 16, 2025
D 上のbitから考える。上のbitが0になっているか? そのときそのbitが0なら次に1が出てきた場所で終わり。1なら、次のところまでは下のbitは守られ、その次で終わり。
E. Mycraft Sand Sort
2025年3月8日土曜日
yukicoder contest 459
No.3050 Prefix Removal
No.3051 Make All Divisible
No.3052 Increasing Sliding Window Minimum
2025年3月7日金曜日
Codeforces Round 997 (Div. 2)
D. Unique Median
2025年3月1日土曜日
yukicoder contest 458
No.3040 Aoiスコア
No.3041 非対称じゃんけん
No.3042 拡大コピー
No.3043 括弧列の数え上げ
No.3044 よくあるカエルさん
No.3045 反復重み付き累積和
2025年2月25日火曜日
鹿島建設プログラミングコンテスト2025(AtCoder Beginner Contest 394)
G 並列二分探索。https://t.co/v1xHE0HJA0
— titia (@titia_til) February 22, 2025
を見に行った。
PyPyだとTLEで通せなかったけど、ChatGPTでRUSTに翻訳してもらってAC。
ただ、ChatGPTで一発では正しいコードが出ずちょっと手直ししないとダメだったので、ルール的にどうかな、と思いコンテスト中は提出しなかった。
yukicoder contest 457
No.3028 No.9999
No.3029 オイラー標数
No.3030 Kruskal-Katona
2025年2月16日日曜日
yukicoder contest 456 オムニバス
No.3022 一元一次式 mod 1000000000
No.3024 全単射的
2025年2月14日金曜日
Codeforces Round 1004 (Div. 1)
Codeforces Round 1004 (Div. 1) Bまで。終了直前にD1が二項係数の値そのままだと気付いた。
— titia (@titia_til) February 11, 2025
A Xが順列でなければ辺が出てないかで判定。そうでないときは、X[i]=1,X[j]=nとなる(i,j),(j,i)を聞く。値が違ったり両方1だったらA。
B 0は一つしか残せない。0は一番左のものを残すのが良い。あとは判定。
A. Object Identification
D1. Club of Young Aircraft Builders (easy version)
2025年2月11日火曜日
AtCoder Regular Contest 192 (Div. 2)
AtCoder Regular Contest 192 (Div. 2) BC二完。
— titia (@titia_til) February 9, 2025
A ARCやCRAのARの部分を1に変えられると誤読。終了五分前くらいに誤読に気付くも解き切れず。
B 実験。N>=4ならsum(A)の偶奇。N=3は奇数が含まれるか。
C "? 1 x"を聞いて、端の一つを探し、そこからもう一回。木の直径を探すアルゴリズムに似ていた。
A - ARC Arc
D - Fraction Line
2025年2月10日月曜日
日本レジストリサービス(JPRS)プログラミングコンテスト2025#1(AtCoder Beginner Contest 392)
F 後ろから見て、最初入れた位置から何個右へ移動するかを二分探索。自分以下の要素が何個現れているかをセグ木で管理した。
— titia (@titia_til) February 8, 2025
G - Fine Triplets
2025年2月3日月曜日
AtCoder Beginner Contest 391
AtCoder Beginner Contest 391 Fが解けなかった。解説を見たらKの制約を見逃していたことに気付いた……。
— titia (@titia_til) February 1, 2025
C 各穴にいる鳩のsetと、鳩がどの穴にいるかを持つ
D 各列の一番小さい値が消える時間が分かる
E 再帰で書いた
F - K-th Largest Triplet
G - Many LCS
2025年1月28日火曜日
Ethflow Round 1 (Codeforces Round 1001, Div. 1 + Div. 2)
Ethflow Round 1 (Codeforces Round 1001, Div. 1 + Div. 2) DもE1も分からず悲しい。
— titia (@titia_til) January 26, 2025
A 1の個数
B 端まで行って戻る時間を見る
C 一回以上操作したときsum(A)もしくは-sum(A)が作れる。
D l=rなら全方位木DPでいけそう→三分探索しようとしたが実装間に合わず
E1 Wが最大の頂点を基準に考えたがダメ。
D. Balanced Tree
E1. The Game (Easy Version)
2025年1月27日月曜日
AtCoder Regular Contest 191 (Div. 2)
AtCoder Regular Contest 191 (Div. 2) AB二完。Cは諦めるべきだったかも。
— titia (@titia_til) January 26, 2025
A 最後の一個以外は貪欲に。最後の一個は、一番後ろに入れるべきかチェック。
B bitが立っていない箇所を1にする個数。
C オイラーのトーシェント関数っぽいからそれ関係の資料を読んでいたが上手くいかない。
C - A^n - 1
D - Moving Pieces on Graph
2025年1月26日日曜日
AtCoder Beginner Contest 390
B A[i]*A[i]=A[i-1]*A[i+1]を使った
— titia (@titia_til) January 25, 2025
C 黒いマスの端の行、列を見て、その間に"."が存在しない
E 各ビタミンごとにDPしておき、答え二分探索。
D - Stone XOR
F - Double Sum 3
2025年1月25日土曜日
Codeforces Round 1000 (Div. 2)
Codeforces Round 1000 (Div. 2) Dまで。
— titia (@titia_til) January 22, 2025
A 注意すべきはl=r=1だけ?
B 左右のどちらかから貪欲に取る
C 次数が大きいものを何個か試し、残った中で次数が最大のものを削除、でACした。
D A,Bとも左右の端から貪欲に取る。A側の頂点が足りなくなったら、AABの三角形を一つ削除、とやっていく。
E. Triangle Tree
2025年1月23日木曜日
Codeforces Round 998 (Div. 3)
F. Multiplicative Arrays
2025年1月22日水曜日
ALGO ARTIS プログラミングコンテスト2025 冬(AtCoder Heuristic Contest 041)
ALGO ARTIS プログラミングコンテスト2025 冬(AtCoder Heuristic Contest 041) 400位にも入れず厳しい。
— titia (@titia_til) January 19, 2025
・葉が全体にいきわたるようrootとそこから出ている芽を決め、高さ10の葉の集合が減らないように高さ9,8,7,..の頂点を固定。あとは貪欲に、できるだけ高い高さで頂点を埋めていく、という方針。
これで76,108,082点出た。
— ツカモ (@tsukammo) January 19, 2025
ちょっと書いてある事をストレートに解釈できなかったんだけど、以下のやり方にした。
①根(高さ=0)を決めるため、美しさAの小さい順に頂点を選択し、全頂点が根から距離10以内に入る組合せを全通り求める。
②(続 https://t.co/PtKxMCVioz pic.twitter.com/VBlif4LMPb
IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
D Bの分け方は一意
— titia (@titia_til) January 20, 2025
E 各aについてm個のうちいくつかを使ったときの減少分を全探索。x個で減少させられる量の最大値は、x-1個で減少させられる量の最大値より小さいので、減少量をソートして貪欲。
F1 左から貪欲でいいのでは?→WA
F1. Kevin and Binary String (Easy Version)
yukicoder contest 300
No.1552 Simple Dice Game
No.1554 array_and_me
2025年1月18日土曜日
yukicoder contest 455
No.3004 ヤング図形
No.3005 トレミーの問題
No.3006 ベイカーの問題
2025年1月14日火曜日
AtCoder Regular Contest 190 (Div. 1)
AtCoder Regular Contest 190 (Div. 1) Aはまあまあ速かったものの、Aしか解けず。
— titia (@titia_til) January 12, 2025
A 三回あれば操作可能。二回以下でできるか丁寧に場合分け。
B メモ化再帰でN^3程度の計算量にはなったが高速化できず。(a,b)が固定されているのをどう使えば良いのか……。
A - Inside or Outside
B - L Partition
C - Basic Grid Problem with Updates
D - Matrix Pow Sum
2025年1月12日日曜日
HHKBプログラミングコンテスト2025(AtCoder Beginner Contest 388)
F いける場所を区間の和で表し、各区間がどこへ遷移できるかを調べる。(A==Bのときは別に実装するとして)いける場所が[x,y]のみで、y-x>=Bならば、次の障害物直前まで進んでいいことを利用して実装した。コンテスト中に終わらず、非常に苦労してACしたけど、この方針はあまり良くなかった?
— titia (@titia_til) January 11, 2025
F - Dangerous Sugoroku
G - Simultaneous Kagamimochi 2
2025年1月9日木曜日
Hello 2025
D B=[A[i]+1 for i in range(n)]みたいなのを用意すると、平面走査みたいなので最初の答えは分かる。あとはクエリで差分計算したいのだが上手くいかない。
— titia (@titia_til) January 4, 2025
E1 答え二分探索で毎回BFSするとTLEする。
D. Gifts Order
E2. Another Exercise on Graphs (hard version)
G. Secret Message
2025年1月8日水曜日
AtCoder Beginner Contest 387(Promotion of AtCoderJobs)
D 01BFS
— titia (@titia_til) January 4, 2025
E Nが小さいときは全探索。そうでないとき、aの最初の数桁以外は0の場合を考えると、aの桁和が2,3,8,9のときは条件を満たし、そういうものが必ず存在する。
F iからA[i]に辺を引き、SCCして、木DP