AtCoder 復習用
自分の復習用に AtCoder の問題を雑に並べています。
最近は、整理がつかなくなってきています。
- 動的計画法 (DP) の問題でまとめた記事
いつも読む
大変お世話になっております。
テーマ別
全探索
- 問題 : ARC 020 B - 縞模様
- 問題 : diverta 2019 Programming Contest B - RGB Boxes
- 問題 : CODE FESTIVAL 2014 決勝 C - N進数
- 問題 : Tenka1 Programmer Beginner Contest C - 4/N
- 問題 : ARC 034 B - 方程式
- 問題 : ABC 166 D - I hate Factorization
- 問題 : ABC 077 C - Snuke Festival
- 問題 : ABC 112 C - Pyramid
- 問題 : ABC 075 D - Axis-Parallel Rectangle
- 問題 : ARC 006 C - スフィンクスのなぞなぞ
- 問題 : diverta 2019 Programming Contest 2 B - Picking Up
- 問題 : ABC 100 D - Patisserie ABC
- 問題 : ABC 123 D - Cake 123
再帰関数
- 問題 : ABC 029 C - Brute-force Attack
- 問題 : ABC 026 C - 高橋君の給料
- 問題 : ABC 015 C - 高橋くんのバグ探し
- 問題 : ABC 045 C - たくさんの数式 / Many Formulas
- 問題 : ABC 161 D - Lunlun Number
- 問題 : パナソニックプログラミングコンテスト2020 D - String Equivalence
- 問題 : ABC 165 C - Many Requirements
- 問題 : ABC 115 D - Christmas
- 問題 : CODE FESTIVAL 2017 Final C - Time Gap
- 問題 : ABC 119 C - Synthetic Kadomatsu
bit
- 問題 : ABC 014 B - 価格の合計
- 問題 : AGC 035 A - XOR Circle
- 問題 : ABC 121 D - XOR World
- 問題 : ARC 021 B - Your Numbers are XORed...
- 問題 : ABC 147 D - Xor Sum 4
- 問題 : 第5回 ドワンゴからの挑戦状 予選 B - Sum AND Subarrays
- 問題 : ABC 167 C - Skill Up
- 問題 : ABC 128 C - Switches
- 問題 : ABC 147 C - HonestOrUnkind2
- 問題 : ABC 002 D - 派閥
- 問題 : Donutsプロコンチャレンジ2015 B - Tokyo 7th シスターズ
- 問題 : ABC 080 C - Shopping Street
- 問題 : ABC 104 C - All Green
- 問題 : ARC 007 C - 節約生活
二分探索
- 問題 : ABC 146 C - Buy an Integer
- 問題 : ABC 026 D - 高橋君ボール1号
- 問題 : ABC 143 D - Triangles
- 問題 : ABC 030 C - 飛行機乗り
- 問題 : ABC 119 D - Lazy Faith
- 問題 : APC 001 C - Vacant Seat
- インタラクティブ問題
- 問題 : ARC 049 B - 高橋ノルム君
- 問題 : ABC 034 D - 食塩水
- 問題 : ABC 063 D - Widespread
- 問題 : ARC 037 C - 億マス計算
- 問題 : ABC 144 E - Gluttony
- 問題 : ABC 149 E - Handshake
- 問題 : ABC 155 D - Pairs
三分探索
累積和
- そもそも
- 問題 : ABC 037 C - 総和
- 問題 : ABC 067 C - Splitting Pile
- 問題 : ABC 122 C - GeT AC
- 問題 : DISCO presents ディスカバリーチャンネル コードコンテスト2020 予選 B - Iron Bar Cutting
- 問題 : ABC 098 C - Attention
- 問題 : ABC 084 D - 2017-like Number
- 問題 : AGC 011 B - Colorful Creatures
- 問題 : AGC 023 A - Zero-Sum Ranges
- 問題 : ABC 125 C - GCD on Blackboard
- 問題 : CODE FESTIVAL 2015 あさぷろ Hard A - 一次元オセロ
二次元累積和
- そもそも
- 長方形領域
- 二次元累積和の表は、 で作る
- 長方形領域 は、 で求める
- 問題 : ABC 005 D - おいしいたこ焼きの焼き方
- 問題 : ARC 025 B - チョコレート
- 問題 : ABC 106 D - AtCoder Express 2
いもす法
- そもそも
- いもす法 - いもす研 (imos laboratory)
- 区間 に加算された値の総和
- 区間の長さ に対して、要素数 の を用意
- 区間 に値 を加算するときは、 に 、 に する
- 最後に
- 問題 : ABC 014 C - AtColor
- 問題 : ABC 035 C - オセロ
- 問題 : 東京海上日動 プログラミングコンテスト2020 C - Lamps
- 問題 : ABC 080 D - Recording
しゃくとり法
- 問題 : ARC 022 B - 細長いお菓子
- 問題 : ABC 130 D - Enough Array
- 問題 : ABC 124 D - Handstand
- 問題 : ABC 098 D - Xor Sum 2
グリッド
- 問題 : CODE FESTIVAL 2017 qual A B - fLIP
- 問題 : ABC 047 B - すぬけ君の塗り絵 2 イージー / Snuke's Coloring 2 (ABC Edit)
- 問題 : ABC 107 B - Grid Compression
- 問題 : ABC 075 B - Minesweeper
- 問題 : ABC 054 B - Template Matching
- 問題 : ABC 129 D - Lamp
- 問題 : ABC 109 D - Make Them Even
- 問題 : ARC 041 B - アメーバ
- 問題 : ABC 099 D - Good Grid
- 問題 : AGC 038 A - 01 Matrix
- 問題 : ABC 007 C - 幅優先探索
- 問題 : ABC 088 D - Grid Repainting
- 問題 : ARC 031 B - 埋め立て
- 問題 : AGC 033 A - Darker and Darker
- 問題 : ABC 018 C - 菱型カウント
- 問題 : エイシング プログラミング コンテスト 2019 C - Alternating Path
- 問題 : ARC 040 C - Z塗り
- 問題 : ABC 092 D - Grid Components
- 問題 : ARC 038 B - マス目と駒
- 問題 : AGC 043 A - Range Flip Find Route
- 問題 : AGC 023 B - Find Symmetries
- 問題 : ARC 005 C - 器物損壊!高橋君
グラフ
- 問題 : ABC 168 D - .. (Double Dots)
- 問題 : ABC 075 C - Bridge
- 問題 : ABC 016 C - 友達の友達
- 問題 : ABC 054 C - One-stroke Path
- 問題 : ABC 021 C - 正直者の高橋くん
- 問題 : ARC 011 C - ダブレット
- 問題 : AGC 032 B - Balanced Neighbors
- 問題 : CODE FESTIVAL 2014 Easy C - 身体バランス
- 問題 : ARC 027 B - 大事な数なのでZ回書きまLた。
- 問題 : AGC 039 B - Graph Partition
- 問題 : ABC 131 E - Friendships
- 問題 : ABC 035 D - トレジャーハント
- 問題 : ABC 051 D - Candidates of No Shortest Paths
- 問題 : ABC 022 C - Blue Bird
- 問題 : ABC 074 D - Restoring Road Network
- 問題 : ABC 132 E - Hopscotch Addict
木
- 問題 : ABC 138 D - Ki
- 問題 : ABC 146 D - Coloring Edges on Tree
- 問題 : ABC 126 D - Even Relation
- 問題 : ABC 070 D - Transit Tree Path
- 問題 : ARC 030 B - ツリーグラフ
- 問題 : ABC 133 E - Virus Tree 2
- 問題 : AGC 014 B - Unplanned Queries
- 問題 : M-SOLUTIONS プロコンオープン D - Maximum Sum of Minimum
- 問題 : 全国統一プログラミング王決定戦予選 D - Restore the Tree
Union-Find 木
- 問題 : ARC 032 B - 道路工事
- 問題 : ABC 126 E - 1 or 2
- 問題 : ABC 120 D - Decayed Bridges
- 問題 : ABC 157 D - Friend Suggestions
- 問題 : ABC 040 D - 道路の老朽化対策について
場合の数
- 逆元について
- 問題 : ABC 094 D - Binomial Coefficients
- 問題 : ABC 156 D - Bouquet
- 問題 : ABC 145 D - Knight
- 問題 : ABC 071 D - Coloring Dominoes
- 問題 : ABC 132 D - Blue and Red Balls
- 問題 : ABC 167 E - Colorful Blocks
- 問題 : ABC 156 E - Roaming
重複組合せ
- そもそも
- : 種類のものから重複を許して 個選ぶ場合の数
例 : 白球 5 個、赤球 3 個、黒球 2 個について
(1) 10 個の球を 6 人に分ける方法 (1 個ももらわない人がいてもよい)
(2) 10 個の球を 2 組に分ける方法
(1)
(2)
確率・期待値
素数・約数・倍数
- 問題 : ABC 118 C - Monsters Battle Royale
- 問題 : AGC 028 A - Two Abbreviations
- 問題 : ABC 052 C - Factors of Factorial
- 問題 : ABC 112 D - Partition
- 問題 : diverta 2019 Programming Contest D - DivRem Number
- 問題 : ABC 148 E - Double Factorial
- 問題 : ABC 142 D - Disjoint Set of Common Divisors
- 問題 : ABC 046 C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report
- 問題 : ARC 051 B - 互除法
- 問題 : ABC 114 D - 756
- 問題 : ABC 152 E - Flatten
剰余
- 問題 : ABC 060 B - Choose Integers
- 問題 : ABC 103 C - Modulo Summation
- 問題 : ABC 133 C - Remainder Minimization 2019
- 問題 : ABC 108 C - Triangular Relationship
- 問題 : ABC 090 D - Remainder Reminder
- 問題 : ABC 096 D - Five, Five Everywhere
- 問題 : ABC 105 D - Candy Distribution
- 問題 : ABC 164 D - Multiple of 2019
- 問題 : ABC 158 E - Divisible Substring
整数 (未分類)
- 問題 : ABC 056 C - Go Home
- 問題 : CODE FESTIVAL 2016 Final B - Exactly N points
- 問題 : AGC 015 A - A+...+B Problem
- 問題 : ABC 161 F - Division or Substraction
文字列
- 問題 : 天下一プログラマーコンテスト2012 予選A B - 分類たん
- 問題 : ABC 017 B - choku語
- 問題 : AGC 006 A - Prefix and Suffix
- 問題 : キーエンス プログラミング コンテスト 2019 B - KEYENCE String
- 問題 : CODE FESTIVAL 2017 Final A - AKIBA
- 問題 : 三井住友信託銀行プログラミングコンテスト2019 D - Lucky PIN
- 問題 : AGC 016 A - Shrinking
- 問題 : ABC 114 C - 755
- 問題 : ABC 019 B - 高橋くんと文字列圧縮
- ランレングス圧縮
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; int cnt = 0; char tmp = s.at(0); for (int i = 0; i < s.size(); i++) { if (s.at(i) == tmp) cnt++; else { cout << tmp << to_string(cnt); cnt = 1; tmp = s.at(i); } if (i == s.size()-1) { cout << tmp << to_string(cnt) << endl; } } }
- 問題 : ABC 136 D - Gathering Children
- 問題 : ABC 140 D - Face Produces Unhappiness
- 問題 : AGC 039 A - Connection and Disconnection
- 問題 : diverta 2019 Programming Contest C - AB Substrings
- 問題 : ABC 076 C - Dubious Document 2
- 問題 : ABC 049 C - 白昼夢 / Daydream
- 問題 : ABC 137 C - Green Bin
- 問題 : ABC 097 C - K-th Substring
- 問題 : CODE FESTIVAL 2017 qual C C - Inserting 'x'
- 問題 : ARC 053 B - 回文分割
- 問題 : AGC 022 A - Diverse Word
- 問題 : ABC 064 D - Insertion
- 正しい括弧列を作る問題
- 先頭から順に走査。
(
のときは、stack に(
を push する。)
のときは、stack が空または top が)
ならば)
を push し、top が(
ならば pop する
- 問題 : AGC 005 A - STring
#include <bits/stdc++.h> using namespace std; int main() { string X; cin >> X; stack<char> s; for (int i = 0; i < X.size(); i++) { if (X.at(i) == 'S') s.push('S'); else { if (s.empty() || s.top() == 'T') s.push('T'); else s.pop(); } } cout << s.size() << endl; }
- 問題 : ABC 043 D - アンバランス / Unbalanced
- 問題 : 天下一プログラマーコンテスト2015予選B B - 天下一リテラル
- 問題 : Code Formula 2014 予選B C - 仲良し文字列
未分類 (実装問題)
- 個人的に考察よりも実装の方が重いと感じた問題
- 問題 : ABC 041 C - 背の順
- 問題 : ARC 017 B - 解像度が低い。
- 問題 : ARC 036 B - 山のデータ
- 問題 : AGC 013 A - Sorted Arrays
- 問題 : ABC 116 C - Grand Garden
- 問題 : 天下一プログラマーコンテスト2013予選B B - 天下一後入れ先出しデータ構造
- 問題 : 天下一プログラマーコンテスト2012 予選C B - ロイヤルストレートフラッシュ
- 問題 : CODE FESTIVAL 2014 決勝 E - 常ならずグラフ
- 問題 : ABC 001 C - 風力観測
- 問題 : ARC 011 B - ルイス・キャロルの記憶術
- 問題 : ARC 009 B - おとぎの国の高橋君
- 問題 : ARC 010 B - 超大型連休
- 問題 : 天下一プログラマーコンテスト2014予選A B - かぶりん!
- 問題 : DigitalArts プログラミングコンテスト2012 B - Password
- 問題 : ABC 159 E - Dividing Chocolate
- 問題 : ABC 020 C - 壁抜け
- 問題 : Code Formula 2014 予選A C - 決勝進出者
未分類
- 問題 : ARC 040 B - 直線塗り
- 問題 : ABC 111 C - /\/\/\/
- 問題 : CODE FESTIVAL 2017 qual A C - Palindromic Matrix
- 問題 : ARC 030 A - 閉路グラフ
- 問題 : ABC 070 B - Two Switches
- 問題 : ABC 072 C - Together
- 問題 : ABC 081 C - Not so Diverse
- 問題 : ABC 117 C - Streamline
- 問題 : ABC 004 C - 入れ替え
- 問題 : ABC 107 C - Candles
- 問題 : ABC 123 C - Five Transportations
- 問題 : ABC 069 C - 4-adjacent
- 問題 : ABC 102 C - Linear Approximation
- 問題 : CODE FESTIVAL 2016 qual C B - K個のケーキ / K Cakes
- 問題 : ABC 134 D - Preparing Boxes
- 問題 : ABC 048 C - Boxes and Candies
- 問題 : AGC 008 A - Simple Calculator
- 問題 : AGC 032 A - Limited Insertion
- 問題 : ABC 027 B - 島と橋
- 問題 : ABC 160 E - Red and Green Apples
- 問題 : 全国統一プログラミング王決定戦予選 C - Different Strokes
- 問題 : ABC 133 D - Rain Flows into Dams
- 問題 : ABC 055 D - Menagerie
- 問題 : ABC 134 E - Sequence Decomposing
- 問題 : Tenka1 Programmer Beginner Contest C - Align
- 問題 : CADDi 2018 D - Harlequin
- 問題 : AGC 003 B - Simplified mahjong
- 問題 : APC 001 B - Two Arrays
- 問題 : CODE FESTIVAL 2014 予選B C - 錬金術士
- 問題 : diverta 2019 Programming Contest 2 C - Successive Subtraction
- 問題 : Tenka1 Programmer Beginner Contest D - Crossing
- 問題 : ARC 004 B - 2点間距離の最大と最小 ( Maximum and Minimum )
- 問題 : ABC 157 E - Simple String Queries
- 問題 : Indeedなう(予選B) D - 高橋くんと数列
- 問題 : ABC 166 E - This Message Will Self-Destruct in 5s
- 問題 : AGC 024 B - Backfront
- 問題 : AGC 033 B - LRUD Game
- 問題 : ABC 068 D - Decrease (Contestant ver.)