作成日 | 2025/08/19 |
最終更新日 | 2025/10/05 |
解いた問題が増えてきて類題をパッと出せなくなってきたのでメモしておきます。解いた範囲でまとめます。
当然ですが解法に触れまくるので自力で解きたい人は要注意。
001 - Yokan Party(★4)
みんなに分けたときの最小値の最大化
|
002 - Encyclopedia of Parentheses(★3)
括弧列の種類数
|
003 - Longest Circular Road(★4)
辺を一本足して最大のサイクルを作る
|
004 - Cross Sum(★2)
あるマスのある行と列の和を出す
|
005 - Restricted Digits(★7)
K種の数字でN桁の数を作って、Bの倍数になる種類数
|
006 - Smallest Subsequence(★5)
長さNの文字列SのK文字の部分列の辞書順最小
|
007 - CP Classes(★3)
レーティングAとレーティングBの差の絶対値の和を最小化
|
008 - AtCounter(★4)
N文字の文字列Sから部分文字列でAtCoderとなる種類数
|
009 - Three Point Angle(★6)
XY平面で、もっとも180度に近い角をなす三点を探す
|
010 - Score Sum Queries(★2)
2つのクラスのL ~ R の点数の合計をQ回出す
|
011 - Gravy Jobs(★6)
締め切りがDiで、連続するCi日を使ってSiの報酬をもらう。報酬の合計を最大化。
|
012 - Red Painting(★4)
HWのグリッドに対して2つのクエリが与えられるので処理 ・マスを塗る ・2マス間を塗られたマスだけで移動できるか判定する
|
013 - Passing(★5)
ある点を経由した最短距離を出す
|
014 - We Used to Sing a Song Together(★3)
始点と終点の距離の和を最小化
|
015 - Don't be too close(★6)
一定以上離れた数値をピックする方法の種類数
|
016 - Minimum Coins(★3)
3つの基底でNを作るとき、必要な要素の最小化
|
017 - Crossing Segments(★7)
交差する弦の数
|
018 - Statue of Chokudai(★3)
時間によって変わる位置から、ある地点を見たときの角度
|
019 - Pick Two(★6)
連続要素を取り除くコストを2数の差の絶対値、全要素を除去した時のコストの最小化
|
020 - Log Inequality(★3)
対数の大小の比較
|
021 - Come Back in One Piece(★5)
DAGの最大サイクルを探す
|
022 - Cubic Cake(★2)
直方体を立方体に分割したとき、最大の立方体求める
|
023 - Avoid War(★7)
周囲8マスに別のコマがない置き方の種類数
|
024 - Select +/- One(★2)
2つの数列をK回の1の加減算の操作で一致させる
|
025 - Digit Product Equation(★7)
各桁の積と元の数字の関係を条件を満たす数字の種類数
|
026 - Independent Set on a Tree(★4)
木から隣り合わない頂点を取り出す方法
|
027 - Sign Up Requests (★2)
存在管理。あるidが存在しないなら処理をする。
|
028 - Cluttered Paper(★4)
紙を敷き詰めて指定枚数重なっている場所の面積
|
029 - Long Bricks(★5)
長さの異なるブロックを置いてそれぞれの高さを求める
|
030 - K Factors(★5)
素因数がk個ある数字の種類数
|
031 - VS AtCoder(★6)
山から石を取るゲームの必勝判定
|
032 - AtCoder Ekiden(★3)
N人で駅伝。険悪な二人は襷をつなげない。かかる時間の最小化
|
033 - Not Too Bright(★2)
指定領域に条件を満たすように明かりを配置したとき、置ける最大値
|
034 - There are few types of elements(★4)
連続部分列に登場する要素がK個になる、最長部分列を求める
|
035 - Preserve Connectivity(★7)
指定した頂点が連結状態であるのに必要な枝の数を最小化
|
036 - Max Manhattan Distance(★5)
マンハッタン距離の最大値を出す
|
037 - Don't Leave the Spice(★5)
L~Rの間で自由に使えるスパイスをちょうどW使い、作った料理の価値を最大化する
|
038 - Large LCM(★3)
AとBの最小公倍数を出すが、大きい場合はlargeと出す
|
039 - Tree Distance(★5)
木の頂点間距離の和
|
040 - Get More Money(★7)
鍵とお金がある家にW円払って入る。ただし、家に入るには鍵が必要。スコアの最大化
|
041 - Piles in AtCoder Farm(★7)
多角形を作り、内部の格子点の数を数え上げ
|
042 - Multiple of 9(★4)
9の倍数かつ、桁の和がKの数字の種類数
|
043 - Maze Challenge with Lack of Sleep(★4)
迷路攻略で曲がる回数を最小化
|
044 - Shift and Swapping(★3)
数列のシフトとスワップ処理をしたときに、Aiの値を出す
|
045 - Simple Grouping(★6)
N個の頂点をK個にグルーピング。距離の最大値を最小化
|
046 - I Love 46(★3)
3つの数列から数字を取ってきて、和を46の倍数にする種類数
|
047 - Monochromatic Diagonal(★7)
一定のルールに従ってRGBでグリッドを塗る。斜線の数を数え上げ
|
048 - I will not drop out(★3)
満点がA点、部分点がB点のテストで時間内に取る点を最大化
|
049 - Flip Digits 2(★6)
L~Rのビットを反転させるアイテムを使って文字列を変換。一致可能か判定し、可能ならコストの最小化
|
050 - Stair Jump(★3)
1かL進んでちょうどN進む方法の種類数
|
051 - Typical Shop(★5)
N個の商品からK個選んで、合計をP以下にする種類数
|
052 - Dice Product(★3)
サイコロの出目の積が得点。得点の和を出す
|
053 - Discrete Dowsing(★7)
極大値を1つ持つ数列の極大値の位置を求める。数値は開くまで不明
|
054 - Takahashi Number(★6)
すべての頂点に対してのある頂点からの最短距離
|
055 - Select 5(★2)
数列から5つ選んで乗じたときの余りがQになる種類数
|
056 - Lucky Bag(★5)
Ai円とBi円の福袋から選んで、ちょうどS円になるようにする。可能かどうかと購入方法を出す
|
057 - Flip Flap(★6)
一部の状態を変更する操作で、目標状態を作る操作の種類数
|
058 - Original Calculator(★4)
元の数字と桁和を足してmodを取り数字を変更。K回操作を行ったときの値
|
059 - Many Graph Queries(★7)
DAGで、aからbに到達できるか判定
|
060 - Chimera(★5)
数列Aから極大値を1つ持つ部分列Bを作る。最長部分列の長さを求める
|
061 - Deck(★2)
先頭と最後尾に入れる操作と、x番目の要素を出力する操作
|
062 - Paint All(★6)
条件つき操作で、すべての操作を完了する
|
063 - Monochromatic Subgrid(★4)
HWのグリッドのうち、一部の行列を取りだして出現する数字が1つになるようにする
|
064 - Uplift(★3)
区間加算減算の操作と、連続数の差の絶対値の和を求める
|
065 - RGB Balls 2(★7)
制約を満たすボールの選び方の種類数
|
066 - Various Arrays(★5)
ランダムで作られる数列の転倒数の期待値
|
067 - Base 8 to 9(★2)
8進数を9進数に変換。出た数字を一部変更。K回繰り返した値
|
068 - Paired Information(★5)
2つの項の関係が与えられる。ある数を固定した場合、別の数が一意に定まるか判定
|
069 - Colorful Blocks 2(★3)
条件を満たすようにする種類数
|
070 - Plant Planning(★4)
マンハッタン距離の総和の最小化
|
071 - Fuzzy Priority(★7)
条件を満たす順列をK個見つける
|
072 - Loop Railway Plan(★4)
入れないマスがあるグリッドで、最大ループを求める
|
073 - We Need Both a and b(★5)
ある木にa・b両方の文字を含むように枝を削除する方法の種類数
|
074 - ABC String 2(★6)
操作できる最大数を求める
|
075 - Magic For Balls(★3)
素因数分解した数字を2つ作る。操作回数の最小化
|
076 - Cake Cut(★3)
全体の1/10になるように連続部分列を選択する
|
077 - Planes on a 2D Plane(★7)
時間で移動するものを、条件を満たすように配置
|
078 - Easy Graph Problem(★2)
自身より頂点番号が小さい頂点がただ1つ存在する頂点の個数
|
079 - Two by Two(★3)
2*2のマスに操作を行い、別のグリッドと一致できるか判定
|
080 - Let's Share Bit(★6)
数列の要素すべてとbitAndをとっても0にならないもの種類数
|
081 - Friendly Group(★5)
条件を満たすようにグループ分け。グループの要素数の最大値
|
082 - Counting Numbers(★3)
L~Rの間の数字xをx回書く。文字数を求める
|
083 - Colorful Graph(★6)
グラフの頂点と隣接頂点に色を付ける。色を出力する。
|
084 - There are two types of characters(★3)084 - There are two types of characters(★3)
連続区間に〇と×が含まれる区間の数を求める
|
085 - Multiplication 085(★4)
a*b*C = K となるabcの種類数
|
086 - Snuke's Favorite Arrays(★5)
bitORの条件を満たす数列の種類数
|
087 - Chokudai's Demand(★5)
経路を結ぶ費用を設定し、条件を満たす費用の最大値を求める
|
088 - Similar but Different Ways(★6)
数列Aから条件を満たすようにカードを選ぶ方法を1つ出力
|
089 - Partitions and Inversions(★7)
数列Aを分割し、各区間のバブルソートに必要な手数の回数の和がK以下になる分割方法の種類数
|
090 - Tenkei90's Last Problem(★7)
連続部分列の最小値*長さがK以下になる連続部分列の種類数
|
ABC426 |
A - OS Versions
順番付けされた文字列を比較
|
https://atcoder.jp/contests/abc426/tasks/abc426_b
文字列にただ1つ出る文字を出力
|
C - Upgrade Required
X以下の数字をYにする
|
---|---|---|---|
D - Pop and Insert
01からなる文字列を指定の操作で文字種を1種類にする。最小操作回数を求める
|
E - Closest Moment
直線に移動する人が2人。2人の距離の最小値を出す
|
F - Clearance
L ~ Rの要素からKを引く。0以下にはならない。引けた数字の和を毎回出力する。
|
|
G - Range Knapsack Query
L~Rの商品でナップサックDPを解く
|
|||
ABC425 |
A - Sigma Cubes
与式の計算をする
|
B - Find Permutation 2
-1に任意の数字を入れたときに1~Nの数字が各1つずつ現れているかをチェック
|
C - Rotate and Sum Query
先頭の要素を最後尾に移動するクエリと、L~Rの和を求めるクエリを処理する
|
D - Ulam-Warburton Automaton
隣接マスが2つ黒いと黒くなるマスがある。最終状態を求める。
|
E - Count Sequences 2
各要素iがCiずつある整数列を作れる組み合わせのパターン数
|
F - Inserting Process
部分文字列を作っていく。遷移の種類数を求める。
|
|
G - Sum of Min of XOR
xとAiのXORの最小値を出す。0 <= x <= M-1の範囲すべてでやる。
|
|||
ABC424 |
A - Isosceles
二等辺三角形の判定
|
B - Perfect
N人の人がM個のテストを受ける。満点になった人を順に出力
|
C - New Skill Acquired
スキルを習得する条件が与えられる。最終的な所持スキルを出力
|
D - 2x2 Erasing 2
2×2の黒い正方形があるとだめ
|
E - Cut in Half
長い棒を半分に分ける。K回繰り返した後のX番目の棒の長さを求める。
|
F - Adding Chords
円に弦を張る。交差するなら張らない。与えられた2点間に弦を張れるかどうかを判定。
|
|
G - Set list
N人のアイドルがM曲使って踊る。i人目のアイドルはAi回踊れて、j曲目はBj人踊る必要があり、盛り上がりはCj。Cjの和を最大化する。
|
|||
ABC423 |
A - Scary Fee
1000円おろすのに手数料C円。最大いくらおろせるか
|
B - Locked Rooms
一列の部屋に人がいる。どこまでいけるか
|
C - Lock All Doors
一列の部屋に人がいる。すべてのドアを閉めるのに必要な操作回数の最小値
|
D - Long Waiting
団体客が来るので入れるかチェック
|
E - Sum of Subarrays
3重Σ
|
F - Loud Cicada
Aの倍数年ごとに蝉が出現。M種類出る年の種類数
|
|
G - Small Multiple 2
未着手 |
|||
ABC422 |
A - Stage Clear
1-1 ~ 8-8 があるので次に進める
|
B - Looped Rope
グリッドにおいて周囲のマスとの関係を満たすか判定
|
C - AtCoder AAC Contest
ABCのアルファベットが与えられるので作れるACの数の最大値
|
D - Least Unbalanced
最大値と最小値の差が小さくなるように分割する。
|
E - Colinear
N個の点のうち、過半数以上を通る直線を求める。
|
F - Eat and Ride
頂点に入るとコストWが増える。枝の移動はWかかる。各頂点にたどりつくのに必要なWの最小値を求める。
|
|
G - Balls and Boxes
条件を満たすようにボールを分ける方法の種類数
|
|||
ABC421 |
A - Misdelivery
i番目の名前が指定したものか判定
|
B - Fibonacci Reversed
フィボナッチ数列。ただし、足したものを桁を逆転させる
|
C - Alternated
文字列をABAB……かBABA……にするのに必要なスワップ回数
|
D - RLE Moving
ランレングス圧縮されている移動を解凍して、同じマスにいる時刻数を求める
|
E - Yacht
ヨットゲームの期待値を求める
|
F - Erase between X and Y
Xの後ろに数字を追加。XとYの間にある数字を削除。削除した数字の和を出す
|
|
G - Increase to make it Increasing
未着手 |
|||
ABC420 |
A - What month is it?
X月のYヶ月後はいつ?
|
B - Most Minority
多数決の少数派にいると点が入る。最高点の人を列挙する。
|
C - Sum of Min Query
二つの数列の最小値の和を出す。変更が複数回行われる
|
D - Toggle Maze
ボタンを押すと開閉するドアがある迷路でゴールにつく最短経路距離
|
E - Reachability Query
有向辺を追加・頂点の色を白黒反転・ある頂点から黒にたどり着けるかを判定
|
F - kirinuki
未着手 |
|
G - sqrt(n²+n+X)
ルートの中が整数になるnを全部出す
|
|||
ABC419 |
A - AtCoder Language
単語を別の単語で出力
|
B - Get Min
袋に入れる操作と最小値を取り出す操作
|
C - King's Summit
縦横斜めに移動するものを一か所に集める
|
D - Substr Swap
SとTのL~Rを入れ替える。Q回後の状態を出力
|
E - Subarray Sum Divisibility
すべてのL個の連続部分列の和がMの倍数になる操作の最小回数
|
F - All Included
与えられたN個の文字列をすべて含むL文字の種類数
|
|
G - Count Simple Paths 2
未着手 |
|||
ABC418 |
A - I'm a teapot
文字列がteaで終わるか判定
|
B - You're a teapot
tで始まってtで終わる部分文字列のうち、tの割合が最も高いものを探索
|
C - Flush
同じ数字をK個選択するために必要な山札の大きさを探す
|
D - XNOR Operation
隣接する2数のxorを取って置き換える。最後に1になる部分文字列の種類数を求める
|
E - Trapezium
平面に台形がいくつあるか数え上げ
|
F - We're teapots
未着手 |
|
G - Binary Operation
未着手 |
|||
ABC417 |
A - A Substring
先頭からA文字、末尾からB文字落とした部分文字列を出力
|
B - Search and Delete
数列に含まれる指定された数字を削除
|
C - Distance Indicators
i-j = A[i] + A[j]になるペアの数え上げ
|
D - Takahashi's Expectation
指定したスコアより低い場合、スコアが下がり、指定したスコア以上の場合スコアが上がる。初期値を与えたときの最終スコアを出す
|
E - A Path in A Dictionary
始点から終点に辞書順最小で移動
|
F - Random Gathering
L~Rの石を全部集めて一つのさらに集める。最終的な石の数の期待値を出す。
|
|
G - Binary Cat
未着手 |
|||
ABC416 |
A - Vacation Validation
文字列のL~Rが全部oかを判断
|
B - 1D Akari
oとoの間に#が必ず一つあるようにして、oの数を最大化
|
C - Concat (X-th)
K個の文字列を任意で結合。辞書順でX番目の文字列を出力
|
D - Match, Mod, Minimize 2
A,Bを並び替え (Ai + Bi) mod M の和を最小化
|
E - Development
N個の街を双方向に結ぶ陸路と、完全グラフを作る空路がある。陸路・空路の追加と移動時間を求めるクエリが与えられるので処理。
|
F - Paint Tree 2
色が塗られてないパスを選択し、そのパスを塗る。パスにある頂点の数字の和を求める。
|
|
G - Concat (1st)
N個の文字列を並び替え結合。辞書順最小を出力。
|
|||
ABC415 |
A - Unsupported Type
数列AにXが含まれるかチェック
|
B - Pick Two
前から#の位置を2つずつ出力
|
C - Mixture
N個の薬を混ぜると2^Nの状態がある。各状態が許されるかどうかが与えられるので、全部混ぜた状態を作れるか判定する
|
D - Get Many Stickers
コーラ瓶Ai本を持っていくとコーラをBi本もらえる。 交換回数の最大化。
|
E - Hungry Takahashi
H*Wのマスを移動。マスi,jにはコインがAijあり立ち入ると回収できる。k日目はPkのコインを支払う。ゴールにたどりつくのに必要な最小の開始枚数を求める。
|
F - Max Combo
長さNの文字列があり、1文字を変更するクエリと区間L~Rの中にある同じ文字が続く長さの最長を求める。
|
|
G - Get Many Cola
コーラ瓶Ai本を持っていくとコーラをBi本もらえる。 飲める量の最大化。 |
|||
ABC414 |
A - Streamer Takahashi
Xi時からYi時まで配信を見れる人がいる。L時からR時を包含している人がいるか判定
|
B - String Too Long
ランレングス圧縮の復元
|
C - Palindromic in Both Bases
10進法とA進法でどちらも回文の数字の種類数を求める
|
D - Transmission Mission
N個の点をM個の線分で覆う。線分の長さの和の最小値を求める。
|
E - Count A%B=C
1 ≦ a,b,c ≦ N かつa,b,c,は相異なる。 a%b = cの種類数を求める。
|
F - Jump Traveling
N頂点木の上で距離Kの点に移動。頂点1から頂点kに移動可能かどうかを判定。
|
|
G - AtCoder Express 4
l~rで人が乗りL~Rで人を下す電車がある。初乗り運賃cと距離に応じた費用が掛かる。駅1から各駅に移動する経路があるなら、必要な最小運賃を求める。 |
ABC368 |
A - Cut
山札をカットして上に積む
|
B - Decrease 2 max elements
降順にソート。手前2つを減算。0より大きい数字が1つになったら終了
|
C - Triple Attack
1 1 3 とダメージを与える人がN体のモンスターを倒すのにかかる時間
|
---|---|---|---|
D - Minimum Steiner Tree
指定頂点をすべて含む最小の木を求める
|
E - Train Delay
電車が遅れる。乗り換え可能だった電車が乗り換え可能になるように他の電車を遅らせる。
|
F - Dividing Game
約数のどれかに遷移。全部1にしたら勝利。必勝判定を行う。
|
|
G - Add and Multiply Queries
A・B二つの数列があり、Aは加算・B乗算として操作。 L ~ R のiに対してAiかBiを作用させたときの最大値を出す。
|
|||
ABC367 |
A - Shout Everyday
時間が3つ与えられるので、条件判定
|
B - Cut .0
小数点以下の0を省略して出力
|
C - Enumerate Sequences
条件を満たす数列を列挙
|
D - Pedometer
円環で移動距離がMの倍数になるような点の組み合わせを数え上げ
|
E - Permute K times
参照を示す数列が与えられるのでK回後の状態を出力
|
F - Rearrange Query
数列A・BのL~Rに現れる数字の数が等しいか判断
|
|
G - Sum of (XOR^K or 0)
数列Aの部分列をBとする。Bの要素数がMの倍数の時、総XORを取ってK乗したものの和を求める。
|
|||
ABC366 |
A - Election 2
2人で選挙。結果が確定しているか判定
|
B - Vertical Writing
横書きで与えられた文字列を縦書きにする
|
C - Balls and Bag Query
袋に数字が書かれたボールを入れたり出したり。入っているボールの種類数
|
D - Cuboid Sum Query
3次元配列の直方体の一部の和を出す
|
E - Manhattan Multifocal Ellipse
今ある点からの距離の和がD以下の点の種類数
|
F - Maximum Composition
合成関数の最大値を求める
|
|
G - XOR Neighbors
隣接頂点とのxorが0になるグラフをつくる
|