2022-01-01から1年間の記事一覧

AtCoder Beginner Contest 178 E - Dist Max【Python】

https://atcoder.jp/contests/abc178/tasks/abc178_e AtCoder ProblemsでDifficulty: 1054、Solve Probability: 18%でした。 解けませんでした。 下記の記事の解説がわかりやすかったです。 bqn2.hatenablog.com 愚直に2点の距離を求めようとすると2重ループ…

AtCoder Beginner Contest 153 E - Crested Ibis vs Monster【Python】

https://atcoder.jp/contests/abc153/tasks/abc153_e AtCoder ProblemsでDifficulty: 1015、Solve Probability: 19%でした。 ちょうどアルゴ式でDPについて勉強したところだったため問題文を見てDPで解けそうという検討がつきました。 algo-method.com H, N …

AtCoder Beginner Contest 225 D - Play Train【Python】

https://atcoder.jp/contests/abc225/tasks/abc225_d AtCoder ProblemsでDifficulty: 778、Solve Probability: 33%でした。 解けませんでした。 双方向リストも思いつかず、制約の「3xの形式のクエリで出力する電車の番号の個数の合計は106以下」についても…

AtCoder Beginner Contest 167 D - Teleporter【Python】

https://atcoder.jp/contests/abc167/tasks/abc167_d AtCoder ProblemsでDifficulty: 754、Solve Probability: 35%でした。 最終的に経路はリピートされるため、辞書で町ごとに訪れた回数をカウントし、初めてカウントが2になった街があれば、その時点からそ…

AtCoder Beginner Contest 243 D - Moves on Binary Tree【Python】

https://atcoder.jp/contests/abc243/tasks/abc243_d AtCoder ProblemsでDifficulty: 758でした。 解けませんでした。 解説 atcoder.jp の解法2の2進数に変換した文字列で考えるというのは部分的に他の問題でもあった記憶があるため思いつきたかったところで…

AtCoder Beginner Contest 241 C - Connect 6【Python】

https://atcoder.jp/contests/abc241/tasks/abc241_c AtCoder ProblemsでDifficulty: 664でした。 コンテスト中に解けませんでした。6行6列のマス目を動かして全探索するという発想ができませんでした。 N = int(input()) S = [] for i in range(N): S.appen…

AtCoder Beginner Contest 240 D - Strange Balls【Python】

https://atcoder.jp/contests/abc240/tasks/abc240_d AtCoder ProblemsでDifficulty: 570、Solve Probability: 53%でした。 解けませんでした。コンテスト中に1時間10分ほど時間が残っており、スタックについても知っていたので解きたかった問題でした。 fro…

AtCoder Beginner Contest 239 E - Subtree K-th Max【Python】

https://atcoder.jp/contests/abc239/tasks/abc239_e AtCoder ProblemsでDifficulty: 1084、Solve Probability: 10%でした。 解けませんでした。クエリのKの制約が20以下のため、部分木に含まれる頂点に書かれた数のリストの長さは20まで持っておけば良いと…

AtCoder Beginner Contest 212 D - Querying Multiset【Python】

https://atcoder.jp/contests/abc212/tasks/abc212_d AtCoder ProblemsでDifficulty: 775、Solve Probability: 31%でした。 操作2の足された数の和を記録しておき、操作1でその和をXiから引いたものをheapqで管理、操作3ではその和をXiに足したものを取り出…

AtCoder Beginner Contest 136 D - Gathering Children【Python】

https://atcoder.jp/contests/abc136/tasks/abc136_d AtCoder ProblemsでDifficulty: 794、Solve Probability: 30%でした。 解けませんでした。 10**100回後の移動なので偶数マス離れたところにしか行けないという考え方は勉強になりました。 コードは以下の…

AtCoder Beginner Contest 189 D - Logical Expression【Python】

https://atcoder.jp/contests/abc189/tasks/abc189_d AtCoder ProblemsでDifficulty: 769、Solve Probability: 32%でした。 動的計画法で解くことができましたが、思いつくのと実装に時間がかかってしまいました。 最近のABCでも桁DPなるもので解ける問題が…

AtCoder Beginner Contest 162 D - RGB Triplets【Python】

https://atcoder.jp/contests/abc162/tasks/abc162_d AtCoder ProblemsでDifficulty: 757、Solve Probability: 33%でした。 先にR,G,Bそれぞれの数の累積和を求めて、i, jについて全探索してkについては累積和から条件に合う数を求めました。 解説を見たとこ…

AtCoder Beginner Contest 174 C - Repsept【Python】

https://atcoder.jp/contests/abc174/tasks/abc174_c AtCoder ProblemsでDifficulty: 902、Solve Probability: 21%でした。 解けませんでした。 mod K後の値で考えると、同じ値が出るとループになり、そうでない場合は、K項目までには0が出てくるはずなので…

AtCoder Beginner Contest 180 D - Takahashi Unevolved【Python】

https://atcoder.jp/contests/abc180/tasks/abc180_d AtCoder ProblemsでDifficulty: 752、Solve Probability: 34%でした。 始めにカコモンジムに可能な限り(強さの変化量がAtCoderジムのもの以下で、強さがY以下)通い、その後AtCoderジムに通うことができ…

第二回日本最強プログラマー学生選手権 D - Nowhere P【Python】

https://atcoder.jp/contests/jsc2021/tasks/jsc2021_d AtCoder ProblemsでDifficulty: 743、Solve Probability: 35%でした。 解けませんでした。 ユーザー解説 blog.hamayanhamayan.com がわかりやすかったです。 先頭が1~1-Pで次の数字を考えるとたしかに…

AtCoder Beginner Contest 149 D - Prediction and Restriction【Python】

https://atcoder.jp/contests/abc149/tasks/abc149_d AtCoder ProblemsでDifficulty: 719、Solve Probability: 37%でした。 K回より前は単純に勝てる手を出し、 K回以降は現在勝てる手をK回前に出していなければその手を出し、K回前に出していた場合は残りの…

AtCoder Beginner Contest 215 D - Coprime 2【Python】

https://atcoder.jp/contests/abc215/tasks/abc215_d AtCoder ProblemsでDifficulty: 736、Solve Probability: 35%でした。 正数列Aを素因数分解して各素因数を一つの集合に管理し、エラトステネスのふるいを少し変えて各素因数の倍数であるものをふるい落と…

ZONeエナジー プログラミングコンテスト “HELLO SPACE” D - 宇宙人からのメッセージ【Python】

https://atcoder.jp/contests/zone2021/tasks/zone2021_d AtCoder ProblemsでDifficulty: 719、Solve Probability: 37%でした。 Rごとに文字列を分けるとすると反転させた回数(右に何個Rがあるか)が偶数か奇数か2つのリストに分けて、奇数であればリストの…

AtCoder Beginner Contest 169 D - Div Game【Python】

https://atcoder.jp/contests/abc169/tasks/abc169_d AtCoder ProblemsでDifficulty: 732、Solve Probability: 34%でした。 素因数分解を行い各指数について答えを求めていきました。 1, 2, 3...の累積和[0, 1, 3, 6...]を求め二分探索で各指数が何回操作を…

AtCoder Beginner Contest 177 D - Friends【Python】

https://atcoder.jp/contests/abc177/tasks/abc177_d AtCoder ProblemsでDifficulty: 732、Solve Probability: 34%でした。 Union-Findで友達同士であるものをグループとし、すべてのグループのメンバーの最大値が答えになりました。 from collections impor…

AtCoder Beginner Contest 190 D - Staircase Sequences【Python】

https://atcoder.jp/contests/abc190/tasks/abc190_d AtCoder ProblemsでDifficulty: 722、Solve Probability: 35%でした。 解けませんでした。 (A + B)(B - A + 1) = 2NをXY= 2NとしてXYが2Nの約数となることやXYの偶奇が異なるなどということに全く考えが…

AtCoder Beginner Contest 173 D - Chat in a Circle【Python】

https://atcoder.jp/contests/abc173/tasks/abc173_d AtCoder ProblemsでDifficulty: 720、Solve Probability: 35%でした。 規則性を考えたところ降順にソートしたものをA1, A2, A3, A4, A5, A6...とすると答えはA1+A2+A2+A3+A3...となることがわかったため…

AtCoder Beginner Contest 183 D - Water Heater【Python】

https://atcoder.jp/contests/abc183/tasks/abc183_d AtCoder ProblemsでDifficulty: 662、Solve Probability: 40%でした。 階差を求めてその累積和を計算しW以上の値があるかを判定していきました。おそらく、いもす法と呼ばれるもののようです。 ​ gihyo.j…

AtCoder Beginner Contest 159 D - Banned K【Python】

https://atcoder.jp/contests/abc159/tasks/abc159_d AtCoder ProblemsでDifficulty: 496、Solve Probability: 58%でした。 まず全体の書かれている整数が等しいような異なる2つのボールを選び出す方法の数を求め、k番目ごとに全体からAiに関わる組み合わせ…

AtCoder Beginner Contest 218 D - Rectangles【Python】

https://atcoder.jp/contests/abc218/tasks/abc218_d AtCoder ProblemsのRecommendationでDifficulty: 715、Solve Probability: 34%でした。 defaultdictで同じx座標を持つ点のy座標、同じy座標を持つ点のx座標をそれぞれ管理し、同じx座標の点から2つ選び答…

M-SOLUTIONS プロコンオープン 2020 D - Road to Millionaire【Python】

https://atcoder.jp/contests/m-solutions2020/tasks/m_solutions2020_d AtCoder ProblemsのRecommendationでDifficulty: 665、Solve Probability: 40%でした。 初期状態として株価の最小値を1つ目の株価、最大値を0として、 現在の株価と一つ前の株価を比…

AtCoder Beginner Contest 220 D - FG operation【Python】

https://atcoder.jp/contests/abc220/tasks/abc220_d AtCoder ProblemsのRecommendationでDifficulty: 664、Solve Probability: 40%でした。 動的計画法で解くことができました。 MODを見逃しておりWA、またMODの値が10 ** 9 + 7ではなく998244353であること…

AtCoder Beginner Contest 182 D - Wandering【Python】

https://atcoder.jp/contests/abc182/tasks/abc182_d AtCoder ProblemsのRecommendationでDifficulty: 701、Solve Probability: 36%でした。 動作の座標の累積和を求めて、(A1), (A1 + A2), (A1, + A2 + A3)...の各ひとまとまりの動作後の座標に、それまでの…

AtCoder Beginner Contest 187 D - Choose Me【Python】

https://atcoder.jp/contests/abc187/tasks/abc187_d AtCoder ProblemsのRecommendationでDifficulty: 710、Solve Probability: 35%でした。 ある町で演説を行うと高橋氏の得票数は青木派と高橋派の人数(Ai + Bi)分増え、青木氏の得票数は青木派の人数(Ai)分…

AtCoder Beginner Contest 213 D - Takahashi Tour【Python】

https://atcoder.jp/contests/abc213/tasks/abc213_d AtCoder ProblemsのRecommendationでDifficulty: 710、Solve Probability: 35%でした。 DFS(深さ優先探索)で解くことができました。 import sys sys.setrecursionlimit(1000000) N = int(input()) G = …