https://github.com/fumtas1k/atcoder_typical90
競プロ典型90問
https://github.com/fumtas1k/atcoder_typical90
atcoder java kotlin ruby typical90
Last synced: about 1 month ago
JSON representation
競プロ典型90問
- Host: GitHub
- URL: https://github.com/fumtas1k/atcoder_typical90
- Owner: fumtas1k
- Created: 2022-05-08T07:26:02.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-02-23T04:07:40.000Z (about 1 month ago)
- Last Synced: 2026-02-23T12:27:48.959Z (about 1 month ago)
- Topics: atcoder, java, kotlin, ruby, typical90
- Language: Ruby
- Homepage:
- Size: 273 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [競プロ典型 90問](https://atcoder.jp/contests/typical90)
atcoderの典型90問の解法集.
## 各論
javaに関しては、クラス名をMainに変更しないとatcoderでは機能しないので注意。
| 問題文 | アルゴリズム等 | ruby解 | java解 | kotlin解 | 解説 |
|-|-|-|-|-|-|
| [001 - Yokan Party(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_a) | 貪欲法, 二分探索法 | [ruby](ruby/001_YokanParty.rb) | [java](java/YokanParty_001.java) | [kotlin](kotlin/001YokanParty.kt)| [解説](https://twitter.com/e869120/status/1377027868518064129/photo/1) |
| [002 - Encyclopedia of Parentheses(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_b) | bit全探索 | [ruby](ruby/002_EncyclopediaOfParentheses.rb) | [java](java/EncyclopediaOfParentheses_002.java) | [kotlin](kotlin/002_EncyclopediaOfParentheses.kt) | [解説](https://twitter.com/e869120/status/1377391097836544001/photo/1) |
| [003 - Longest Circular Road(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_c) | 木の直径 | [ruby1](ruby/003-01_LongestCircularRoad.rb), [ruby2](ruby/003-02_LongestCircularRoad.rb) | [java1](java/LongestCircularRoad_003_01.java), [java2](java/LongestCircularRoad_003_02.java) | [kotlin1](kotlin/003-01_LongestCircularRoad.kt), [kotlin2](kotlin/003-02_LongestCircularRoad.kt) | [解説](https://twitter.com/e869120/status/1377752658149175299/photo/1) |
| [004 - Cross Sum(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_d) |包除原理 | [ruby](ruby/004_CrossSum.rb) | [java](java/CrossSum_004.java) | [kotlin](kotlin/004_CrossSum.kt) | [解説](https://twitter.com/e869120/status/1378115289649348611/photo/1) |
| [005 - Restricted Digits(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_e) |桁DP法, ダブリング| [ruby](ruby/005_RestrictedDigits.rb) || | [解説](https://twitter.com/e869120/status/1378527948563615746) |
| [006 - Smallest Subsequence(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_f) | 貪欲法 | [ruby1](ruby/006-01_SmallestSubsequence.rb), [ruby2](ruby/006-02_SmallestSubsequence.rb) | [java](java/SmallestSubsequence_006.java) | [kotlin1](kotlin/006-01_SmallestSubsequence.kt) | [解説](https://twitter.com/e869120/status/1379202843622576130/photo/1) |
| [007 - CP Classes(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_g) | 二分探索法 | [ruby](ruby/007_CPClasses.rb) | [java](java/CPClasses_007.java) | [kotlin](kotlin/007_CPClasses.kt) | [解説](https://twitter.com/e869120/status/1379565222541680644/photo/1) |
| [008 - AtCounter(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_h) | 状態DP法 | [ruby](ruby/008_AtCounter.rb) | [java](java/AtCounter_008.java) | [kotlin](kotlin/008_AtCounter.kt) | [解説](https://twitter.com/e869120/status/1379927227739987972/photo/1) |
| [009 - Three Point Angle(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_i) |二分探索法, 偏角ソート, 真ん中決め打ち|| [java](java/ThreePointAngle_009.java) | | [解説](https://twitter.com/e869120/status/1380290146340245505)|
| [010 - Score Sum Queries(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_j) | 累積和 | [ruby](ruby/010_ScoreSumQueries.rb) | [java](java/ScoreSumQueries_010.java) | [kotlin](kotlin/010_ScoreSumQueries.kt) | [解説](https://twitter.com/e869120/status/1380652465834532865) |
| [011 - Gravy Jobs(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_k) | DP法, 締め切りが早い順 | [ruby](ruby/011_GravyJobs.rb) | [java](java/GravyJobs_011.java) | [kotlin](kotlin/011_GravyJobs.kt) | [解説](https://github.com/E869120/kyopro_educational_90/blob/main/sol/011-03.cpp) |
| [012 - Red Painting(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_l) |Union-Find| [ruby](ruby/012_RedPainting.rb) | [java](java/RedPainting_012.java) | [kotlin](kotlin/012_RedPainting.kt) | [解説](https://twitter.com/e869120/status/1381739128291614720) |
| [013 - Passing(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_m) | ダイクストラ法 | [ruby](ruby/013_Passing.rb) | [java](java/Passing_013.java) | [kotlin](kotlin/013_Passing.kt) | [解説](https://twitter.com/e869120/status/1382101716066127872) |
| [014 - We Used to Sing a Song Together(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_n) | ソート, 貪欲法 | [ruby](ruby/014_WeUsedToSingASongTogether.rb) | [java](java/WeUsedToSingSongTogether_014) | [kotlin](kotlin/014_WeUsedToSingASongTogether.kt) | [解説](https://twitter.com/e869120/status/1382478816627478530) |
| [015 - Don't be too close(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_o) | 調和級数, 逆元, フェルマーの小定理 | [ruby](ruby/015_DontBeTooClose.rb) | | [kotlin](kotlin/015_DontBeTooClose.kt) | [解説](https://twitter.com/e869120/status/1382827276673306624) |
| [016 - Minimum Coins(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_p) | 工夫した全探索 | [ruby](ruby/016_MinimumCoins.rb) | | [kotlin](kotlin/016_MinimumCoins.kt) | [解説](https://twitter.com/e869120/status/1383189464650981378/photo/1) |
| [017 - Crossing Segments(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_q) |余事象, BIT(FenwickTree) |[ruby](ruby/017_CrossingSegments.rb) | | [kotlin](kotlin/017_CrossingSegments.kt) | [解説](https://twitter.com/e869120/status/1383635232134287360) |
| [018 - Statue of Chokudai(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_r) | 三角関数 | [ruby](ruby/018_StatueOfChokudai.rb) | | | [解説](https://twitter.com/e869120/status/1384276005330690049) |
| [019 - Pick Two(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_s) | 区間DP法 | [ruby](ruby/019_PickTwo.rb) | | | [解説](https://twitter.com/e869120/status/1384638694162780166) |
| [020 - Log Inequality(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_t) | 整数 | [ruby](ruby/020_LogInequality.rb) | | | [解説](https://twitter.com/e869120/status/1385001057512693762) |
| [021 - Come Back in One Piece(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_u) | 強連結成分分解 | [ruby1](ruby/021-01_ComeBackInOnePiece.rb), [ruby](ruby/021-02_ComeBackInOnePiece.rb) | [java](java/ComeBackInOnePiece_021.java) | [kotlin1](kotlin/021-01_ComeBackInOnePiece.kt), [kotlin2](kotlin/021-02_ComeBackInOnePiece.kt) | [解説](https://twitter.com/e869120/status/1385363292739104775) |
| [022 - Cubic Cake(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_v) | ユークリッド互除法 | [ruby1](ruby/022-01_CubicCake.rb), [ruby2](ruby/022-02_CubicCake.rb) | | | [解説](https://twitter.com/e869120/status/1385725481920520193) |
| [023 - Avoid War(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_w) |bit全探索, bitDP法 ||| | [解説](https://twitter.com/e869120/status/1386138990361726978) |
| [024 - Select +/- One(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_x) | パリティ | [ruby](ruby/024_Select+/-One.rb) | | | [解説](https://twitter.com/e869120/status/1386814047081746432) |
| [025 - Digit Product Equation(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_y) | 再帰関数 | [ruby](ruby/025_DigitProductEquation.rb) | | [kotlin](kotlin/025_DigitProductEquation.kt) | [解説](https://twitter.com/e869120/status/1387175538544975872) |
| [026 - Independent Set on a Tree(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_z) | 二部グラフ, 再帰関数 | [ruby](ruby/026_IndependentSetOnATree.rb) | | [kotlin](kotlin/026_IndependentSetOnATree.kt) | [解説](https://twitter.com/e869120/status/1387538790017769474) |
| [027 - Sign Up Requests (★2)](https://atcoder.jp/contests/typical90/tasks/typical90_aa) | Hash(Set) | [ruby](ruby/027_SignUpRequests.rb) | [java](java/SignUpRequests_027.java) | [kotlin](kotlin/027_SignUpRequests.kt) | [解説](https://twitter.com/e869120/status/1387901052683386880) |
| [028 - Cluttered Paper(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_ab) | いもす法 | [ruby](ruby/028_ClutteredPaper.rb) | | [kotlin](kotlin/028_ClutteredPaper.kt) | [解説](https://twitter.com/e869120/status/1388262816101007363) |
| [029 - Long Bricks(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_ac) | 座標圧縮, セグメント木 ||| | [解説](https://twitter.com/e869120/status/1388674962823663619) |
| [030 - K Factors(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_ad) | エラトステネスの篩 ||| [kotlin](kotlin/030_KFactors.kt) | [解説](https://twitter.com/e869120/status/1389349360866009090) |
| [031 - VS AtCoder(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_ae) | grundy | [ruby](ruby/031_VsAtCoder.rb) | [java](java/VsAtCoder_031.java) | | [解説](https://twitter.com/e869120/status/1389711962213261316) |
| [032 - AtCoder Ekiden(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_af) | 順列全探索 | [ruby](ruby/032_AtCoderEkiden.rb) | | | [解説](https://twitter.com/e869120/status/1390074137192767489) |
| [033 - Not Too Bright(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_ag) | 境界条件 | [ruby](ruby/033_NotTooBright.rb) | | | [解説](https://twitter.com/e869120/status/1390436977808351234) |
| [034 - There are few types of elements(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_ah) | 尺取法 | [ruby](ruby/034_ThereAreFewTypesOfElements.rb) | | [kotlin](kotlin/034_ThereAreFewTypesOfElements.kt) | [解説](https://twitter.com/e869120/status/1390798852299448322) |
| [035 - Preserve Connectivity(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_ai) | 木DP, 最近共通祖先(LCA), 座標圧縮 | [ruby](ruby/035_PreserveConnectivity.rb) | | | [解説](https://twitter.com/e869120/status/1391218516129312768) |
| [036 - Max Manhattan Distance(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_aj) | マンハッタン距離 | [ruby](ruby/036_MaxManhattanDistance.rb) | | | [解説](https://twitter.com/e869120/status/1391886390091075586) |
| [037 - Don't Leave the Spice(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_ak) | スライド最大値(最小値), DP法, 動的計画法 | [ruby](ruby/037_DontLeaveTheSpice.rb) | | | [解説](https://twitter.com/e869120/status/1392248540882116610) |
| [038 - Large LCM(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_al) | ユークリッド互除法 | [ruby](ruby/038_LargeLCM.rb) | | | [解説](https://twitter.com/e869120/status/1392612322410057729) |
| [039 - Tree Distance(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_am) | 貢献度, 再帰関数 | [ruby](ruby/039_TreeDistance.rb) | | | [解説](https://twitter.com/e869120/status/1392974101061378049) |
| [040 - Get More Money(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_an) |||| | [解説](https://twitter.com/e869120/status/1393336369540341760) |
| [041 - Piles in AtCoder Farm(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_ao) |||| | [解説](https://twitter.com/e869120/status/1393753066331992065) |
| [042 - Multiple of 9(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_ap) |DP法| [ruby](ruby/042_MultipleOf9.rb) | | [kotlin](kotlin/042_MultipleOf9.kt) | [解説](https://twitter.com/e869120/status/1394423616805097477) |
| [043 - Maze Challenge with Lack of Sleep(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_aq) | 拡張BFS | [ruby1](ruby/043-01_MazeChallengewithLackofSleep.rb), [ruby2](ruby/043-02_MazeChallengewithLackofSleep.rb) | | | [解説](https://twitter.com/e869120/status/1394787605099601923) |
| [044 - Shift and Swapping(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_ar) | 見かけ上の変化をメモ | [ruby](ruby/044_ShiftAndSwapping.rb) | | | [解説](https://twitter.com/e869120/status/1395148057730187265) |
| [045 - Simple Grouping(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_as) | bitDP法 ||| | [解説](https://twitter.com/e869120/status/1395510657634619394) |
| [046 - I Love 46(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_at) | 同じものをまとめる, 剰余 | [ruby](ruby/046_ILove46.rb) | | | [解説](https://twitter.com/e869120/status/1395873457259225091) |
| [047 - Monochromatic Diagonal(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_au) | ローリングハッシュ | [ruby](ruby/047_MonochromaticDiagonal.rb) || | [解説](https://twitter.com/e869120/status/1396289540222906368) |
| [048 - I will not drop out(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_av) | 上界(下界)見積り | [ruby](ruby/048_IWillNotDropOut.rb) | | | [解説](https://twitter.com/e869120/status/1396960059796582400) |
| [049 - Flip Digits 2(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_aw) | 最小全域木, Union-Find, クラスカル法 | [ruby](ruby/049_FlipDigits2.rb) | | [kotlin](kotlin/049_FlipDigits2.kt) | [解説](https://github.com/E869120/kyopro_educational_90/blob/main/sol/049.cpp) |
| [050 - Stair Jump(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_ax) | DP法 | [ruby](ruby/050_StairJump.rb) | | [kotlin](kotlin/050_StairJump.kt) | [解説](https://twitter.com/e869120/status/1397684795560259586)|
| [051 - Typical Shop(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_ay) | 半分全列挙 | [ruby](ruby/051_TypicalShop.rb) | | [kotlin](kotlin/051_TypicalShop.kt) | [解説](https://twitter.com/e869120/status/1398046858933538819)|
| [052 - Dice Product(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_az) | 因数分解 | [ruby](ruby/052_DiceProduct.rb) | | [kotlin](kotlin/052_DiceProduct.kt) | [解説](https://twitter.com/e869120/status/1398409831044632576) |
| [053 - Discrete Dowsing(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_ba) |||| | [解説](https://twitter.com/e869120/status/1398827248698810369) |
| [054 - Takahashi Number(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_bb) | 最短経路問題, 幅優先探索, グラフの辺数削減, エルデシュ数 | [ruby](ruby/054_TakahashiNumber.rb) | | | [解説](https://twitter.com/e869120/status/1399496993014116352) |
| [055 - Select 5(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_bc) | 定数倍 | [ruby](ruby/055_Select5.rb) | | | [解説](https://twitter.com/e869120/status/1399859200046505984) |
| [056 - Lucky Bag(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_bd) | 動的計画法, DP法, DP復元 | [ruby](ruby/056_LuckyBag.rb) | | [kotlin](kotlin/056_LuckyBag.kt) | [解説](https://twitter.com/e869120/status/1400221404109230082) |
| [057 - Flip Flap(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_be) | 掃き出し法 | [ruby](ruby/057_FlipFlap.rb) | | |[解説](https://twitter.com/e869120/status/1400584377902399490) |
| [058 - Original Calculator(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_bf) | | [ruby](ruby/058_OriginalCalculator.rb) | | | [解説](https://twitter.com/e869120/status/1400584377902399490) |
| [059 - Many Graph Queries(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_bg) |||| | [解説](https://twitter.com/e869120/status/1401357950686429193) |
| [060 - Chimera(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_bh) | 最長増加部分列(LIS), 二分探索法 | [ruby](ruby/060_Chimera.rb) | [java](java/Chimera_060.java) | [kotlin](kotlin/060_Chimera.kt) | [解説](https://twitter.com/e869120/status/1402034055734980608) |
| [061 - Deck(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_bi) | deque | [ruby](ruby/061_Deck.rb) | | [kotlin](kotlin/061_Deck.kt) | [解説](https://twitter.com/e869120/status/1402395219287371779) |
| [062 - Paint All(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_bj) | 幅優先探索, 後ろから考える | [ruby](ruby/062_PaintAll.rb) | | | [解説](https://twitter.com/e869120/status/1402758934268571648) |
| [063 - Monochromatic Subgrid(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_bk) | bit全探索 | [ruby](ruby/063_MonochromaticSubgrid.rb) | | [kotlin](kotlin/063_MonochromaticSubgrid.kt) | [解説](https://twitter.com/e869120/status/1403121388773249024) |
| [064 - Uplift(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_bl) | 階差 | [ruby](ruby/064_Uplift.rb) | | [kotlin](kotlin/064_Uplift.kt) | [解説](https://twitter.com/e869120/status/1403483256234799105) |
| [065 - RGB Balls 2(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_bm) |||| | [解説](https://twitter.com/e869120/status/1403901094007173120) |
| [066 - Various Arrays(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_bn) | 期待値の線形性 | [ruby](ruby/066_VariousArrays.rb) | | | [解説](https://github.com/E869120/kyopro_educational_90/blob/main/sol/066a.cpp) |
| [067 - Base 8 to 9(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_bo) | | [ruby](ruby/067_Base8to9.rb) | | | [解説](https://twitter.com/e869120/status/1404931743820357633) |
| [068 - Paired Information(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_bp) | クエリ先読み, Union-Find | [ruby](ruby/068_PairedInformation.rb) | | | [解説](https://x.com/e869120/status/1405298187384999938) |
| [069 - Colorful Blocks 2(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_bq) | 繰り返し2乗法 | [ruby](ruby/069_ColorfulBlocks2.rb) | | | [解説](https://twitter.com/e869120/status/1405298187384999938) |
| [070 - Plant Planning(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_br) | マンハッタン距離, 独立で考える | [ruby](ruby/070_PlantPlanning.rb) | | | [解説](https://twitter.com/e869120/status/1406020809492090882) |
| [071 - Fuzzy Priority(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_bs) |||| | [解説](https://twitter.com/e869120/status/1406429317249126402) |
| [072 - Loop Railway Plan(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_bt) | バックトラック, 再帰関数, "何通りか"の感覚 | [ruby](ruby/072_LoopRailwayPlan.rb) | | | [解説](https://twitter.com/e869120/status/1407109731546636289) |
| [073 - We Need Both a and b(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_bu) | 木DP, 動的計画法 | [ruby](ruby/073_WeNeedBothAandB.rb) | | | [解説](https://github.com/E869120/kyopro_educational_90/blob/main/sol/073.cpp) |
| [074 - ABC String 2(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_bv) | 特殊ケースを考える, 不変量を考える | [ruby](ruby/074_ABCString2.rb) | | | [解説](https://twitter.com/e869120/status/1407833847413178372) |
| [075 - Magic For Balls(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_bw) | 素因数分解 | [ruby](ruby/075_MagicForBalls.rb) | | [kotlin](kotlin/075_MagicForBalls.kt) | [解説](https://twitter.com/e869120/status/1408195203538690048) |
| [076 - Cake Cut(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_bx) | 円環を列にして二倍にする(累積和), 尺取法 | [ruby](ruby/076_CakeCut.rb) | | | [解説](https://github.com/E869120/kyopro_educational_90/blob/main/sol/076.cpp) |
| [077 - Planes on a 2D Plane(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_by) |||| | [解説](https://twitter.com/e869120/status/1408978156137025545) |
| [078 - Easy Graph Problem(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_bz) | グラフの基本 | [ruby](ruby/078_EasyGraphProblem.rb) | | | [解説](https://twitter.com/e869120/status/1409644684561944579) |
| [079 - Two by Two(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_ca) | 操作順序によらない | [ruby](ruby/079_TwobyTwo.rb) | | | [解説](https://twitter.com/e869120/status/1410007233262276612) |
| [080 - Let's Share Bit(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_cb) | 包除原理, bit全探索 | [ruby](ruby/080_LetsShareBit.rb) | | | [解説](https://twitter.com/e869120/status/1410368312760934404) |
| [081 - Friendly Group(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_cc) | 二次元累積和, 二次元imos法 |[ruby](ruby/081_FriendlyGroup.rb)|| | [解説](https://twitter.com/e869120/status/1410732179743657986) |
| [082 - Counting Numbers(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_cd) | 数列の和の公式, 部分問題に分解 | [ruby](ruby/082_CountingNumbers.rb) | | | [解説](https://twitter.com/e869120/status/1411094412319330305) |
| [083 - Colorful Graph(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_ce) |||| | [解説](https://twitter.com/e869120/status/1411508237522767873) |
| [084 - There are two types of characters(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_cf) | | [ruby](ruby/084_ThereAreTwoTypesOfCharacters.rb) | | | [解説](https://twitter.com/e869120/status/1412179495868534784) |
| [085 - Multiplication 085(★4)](https://atcoder.jp/contests/typical90/tasks/typical90_cg) | 全件探索, 約数列挙 | [ruby](ruby/085_Multiplication085.rb) | | | [解説](https://twitter.com/e869120/status/1412541885160189952) |
| [086 - Snuke's Favorite Arrays(★5](https://atcoder.jp/contests/typical90/tasks/typical90_ch) | bit全探索, bit毎に独立に考える | [ruby](ruby/086_Snuke'sFavoriteArrays.rb) | | | [解説](https://twitter.com/e869120/status/1412904274900754441) |
| [087 - Chokudai's Demand(★5)](https://atcoder.jp/contests/typical90/tasks/typical90_ci) | ワーシャルフロイド法, 二分探索法 | [ruby](ruby/087_ChokudaisDemand.rb) | | | [解説](https://twitter.com/e869120/status/1413266660862009348) |
| [088 - Similar but Different Ways(★6)](https://atcoder.jp/contests/typical90/tasks/typical90_cj) | 鳩ノ巣原理, DFS | [ruby](ruby/088_SimilarButDifferentWays.rb) | | | [解説](https://x.com/e869120/status/1413629046282280963) |
| [089 - Partitions and Inversions(★7)](https://atcoder.jp/contests/typical90/tasks/typical90_ck) | 条件の言い換え, 不変量, 尺取法, BIT, 座標圧縮, 累積和, 動的計画法 | [ruby](ruby/089_PartitionsAndInversions.rb) | | | [解説](https://x.com/e869120/status/1413991433153912832) |