計算量は四乗な気もするけどRUSTで提出するとAC。(PyPyだとTLEなので、もっと高速化できるのだろうけど……)
— titia (@titia_til) March 30, 2025
C サイクルがあってもYesになる条件を考えていた。二部グラフじゃないならYesっぽい! とか、サイクルの全部の頂点に毛が生えていて欲しい! とか。
2025年4月11日金曜日
AtCoder Grand Contest 071
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