Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

ABC

Toyota Programming Contest 2023 Spring Qual A(AtCoder Beginner Contest 288)

3完 各問題 A - Many A+B Problems A+Bをやっていくだけ。 B - Qualification Contest 先頭K個の文字列をソートして出力。 C - Don’t be cycle N - 連結成分の個数 を超えると、どこかで閉路ができてしまうので、答えは M - (N - 連結成分の個数) (ただし0…

ユニークビジョンプログラミングコンテスト2023 新春 (AtCoder Beginner Contest 287)

4完2WA。 各問題 A - Majority 集計します。Forの数がN/2を上回っていればYesです。 B - Postal Card 全探索すればよいです。 C - Path Graph? 次数が1の頂点が2つと次数が2の頂点がN-2個あり、かつ連結していればYesです。 後者の条件をうっかりして1WA。 D…

ウルシステムズプログラミングコンテスト2023(AtCoder Beginner Contest 286)

4完2WA。 各問題 A - Range Swap A_P と A_R、A_P+1 と A_R+1、... 、A_Q と A_S を入れ替えます。 A問題としてはまあまあ面倒くさいかも。for と if で解けるといわれればそうですが、ちょっと前まではB問題で出ていたレベルでは...。 B - Cat n の次の文字…

AtCoder Beginner Contest 285

4完2WA。 各問題 A - Edge Checker 2 15個しかないので力技でも解けますが、これ完全二分木なので、a * 2 == b or a * 2 + 1 == b なら直接結ばれているとわかります。 B - Longest Uncommon Prefix 愚直にループを回して先頭から確認すればよいです。N=5000…

AtCoder Beginner Contest 284

4完1TLE3RE。 各問題 A - Sequence of Strings 各文字列を配列に入れて後ろから取り出す。 B - Multi Test Cases 奇数の出現数を数えるだけ。 C - Count Connected Component ac-library の dsu を使うだけ。なお連結成分の個数は groups で取れる(外側の)…

ユニークビジョンプログラミングコンテスト2022 冬(AtCoder Beginner Contest 283)

4完。 各問題 A - Power 計算するだけです。99 が int に収まることは事前に確認しました。 B - First Query Problem 愚直に処理すればよいです。 C - Cash Register 下位の桁からチェックして、0が二つ繋がっているときは00が使えるので押す回数を一つ節約…

HHKBプログラミングコンテスト2022 Winter(AtCoder Beginner Contest 282)

3完、5:13。なにこれ...。 各問題 A - Generalized ABC for (int i = 0; i < n; i++) cout << (char)(i + 'A'); cout << endl; B - Let's Get a Perfect Score 制約が小さいので、三重ループで全探索可能です。 C - String Delimiter 前から処理で、括られ中…

AtCoder Beginner Contest 281

3完...。 各問題 A - Count Down for (int i = n; i >= 0; i--) cout << i << endl; B - Sandwich Number まずSの長さは8文字でないとだめで、その上で1文字目と8文字目が英大文字、 2文字目が 1-9、3文字目から7文字目が 0-9 であることを確認すればよいで…

デンソークリエイトプログラミングコンテスト2022 Winter(AtCoder Beginner Contest 280)

4完1TLE 各問題 A - Pawn on a Grid 二重ループで#の数を数えればよいです。 A問題に二重ループ...。 B - Inverse Prefix Sum A_i = S_i - S_(i-1) です。(S_0 は 0 とする) C - Extra Character 前から一文字ずつチェックして、ずれたところが候補になり…

トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)

4完 各問題 A - wwwvvvvvv 一文字ずつ確認して v なら 1 を、w なら 2 を足していけばよいです。 B - LOOKUP お使いの言語の、文字列検索の関数を使えばよいでしょう。 実は私はc++の文字列検索がよくわかっておらず、二重ループを書いて一文字ずつ確認して…

AtCoder Beginner Contest 278

5完2WA。 各問題 A - Shift 問題文に書かれていることを愚直に実装します。ループがかけるかどうかだけの問題。 B - Misjudge the Time 時刻を1分ずつ進める実装が正しくできるかどうかと、BとCを入れ替える実装がちゃんとできるかどうかの問題。 前者はいい…

大和証券プログラミングコンテスト2022 Autumn (AtCoder Beginner Contest 277)

5完。 各問題 A - ^{-1} P_i == X となる i を答えるだけです。 B - Playing Cards Validation 書かれている条件をプログラムに書き下すだけです。重複チェックは set でやると楽。 C - Ladder Takahashi グラフを作ってBFSをやるだけです。ループにはまらな…

AtCoder Beginner Contest 276

5完。 悪くない出来だったけど勝った気がしない...。 各問題 A - Rightmost 後ろからチェックして、'a' ならその位置を出力して終了、最後まで見つからなければ -1 を出力して終了します。 B - Adjacency List map<int, set<int>> を用意して、mp[A_i].emplace(B_i) と mp[</int,>…

AtCoder Beginner Contest 275

5完 各問題 A - Find Takahashi 1本目から順番に見ていって、そこまでで一番高いものより高い橋ならそれが回答の候補、を最後まで繰り返します。 A問題にfor使わせるの完全に解禁されたんですね? B - ABC-DEF 最終的な答えを 998244353 で割るのも、計算途…

キーエンスプログラミングコンテスト2022(AtCoder Beginner Contest 274)

4完 各問題 A - Batting Average cout << fixed << setprecision(3) << B / A << endl; B - Line Sensor 二重ループを書いて行ごとに集計するだけです。 C - Ameba 長さ 2N + 2 (0オリジンなので) の配列 ans を作り、ans[1] = 1 として、子の世代は親の世代…

パナソニックグループプログラミングコンテスト2022(AtCoder Beginner Contest 273)

4完1WA。 各問題 A - A Recursive Function 指定された漸化式を実装して呼び出せばよいです。 B - Broken Rounding 1の位から四捨五入して切り上げなら一つ上の位に1を足せばよい(10iの位が切り上げなら10i+1を足す)ですが、最上位が切り捨てのときは答え…

AtCoder Beginner Contest 272

4完1WA。 各問題 A - Integer Sum 足すだけです。え、でもA問題なのにがっつりforループ使わせるんだ?! B - Everyone is Friends 星取表みたいなのを作って埋めていけばよいです。N, M ともにたかだか100なので、三重ループしても余裕です。 C - Max Even …

京セラプログラミングコンテスト2022(AtCoder Beginner Contest 271)

4完1WA。 各問題 A - 484558 単なる10進 -> 16進変換なので、お好みで。 B - Maintain Multiple Sequences 配列が使えますかーという問題。 C - Manga まず3 * 10^5巻を管理する配列を作って、3 * 105巻目まででかつ1冊目ならその配列にフラグを立てます。そ…

トヨタ自動車プログラミングコンテスト2022(AtCoder Beginner Contest 270)

ABCEの4完3WA。 各問題 A - 1-2-4 Test 1, 2, 4 は二進表記で 001, 010, 100 なので、以下のようにビットが立っているかどうかで判断可能です。 int ans = 0; if (a & 1 or b & 1) ans += 1; if (a & 2 or b & 2) ans += 2; if (a & 4 or b & 4) ans += 4; …

UNICORNプログラミングコンテスト2022(AtCoder Beginner Contest 269)

5完1WA1RE。 各問題 A - Anyway Takahashi いわれたことをやるだけです。2行目要る?! B - Rectangle Detection # がある列について'#'部分の両端を調べることで A, B が求められ、# がある行について'#'部分の両端を調べることでC, Dが求められます。 C - …

ユニークビジョンプログラミングコンテスト2022 夏(AtCoder Beginner Contest 268)

4完1WA。 各問題 A - Five Integers 5つの整数を set に入れて、size を取ればよいです。 B - Prefix? 1文字目から順に判定していけばよいです。|S|>|T|のときは成り立たないことに注意。 C - Chinese Restaurant 各料理が何ターン後に人を喜ばせるかを計算…

NECプログラミングコンテスト2022 (AtCoder Beginner Contest 267)

4完3WA。 各問題 A - Saturday 一文字目はTuesdayとThursdayがかぶってるのですが、二文字目はo, u, e, h, rで独立しているので、そこを見るのが一番早そうです。(ただし今気づいた) 実戦では文字列全体を比較するif文を気合で書きました...。(でも公式解…

AtCoder Beginner Contest 266

6完。ABC初の6完。 各問題 A - Middle Letter s[n/2] B - Modulo Number N % 998244353が答え。ですが、c++の場合負の数の剰余は割り切れるときを除いて負の数になるので、その場合は998244353にそれを足せばよいです。 C - Convex Quadrilateral 正直わから…

AtCoder Beginner Contest 265

4完8WA。8て...。 各問題 A - Apple なんか頭が回ってなくて、ループで1個ずつ買う個数を全探索してしまいましたが、X*3とYの大小関係で3個を買うべきか否かか決まりますね。 B - Explore シミュレーションすればよいです。ここでしょうもないミスで2WA...。…

freee プログラミングコンテスト2022(AtCoder Beginner Contest 264)

5完2WA。 各問題 A - "atcoder".substr() 問題名が示すとおり、お使いの言語の部分文字列を取得する関数を使えばよいでしょう。ループでもよいです。(自分はそちら) B - Nice Grid 頑張ってグリッドを再現します。そうすればあとは(R, C)がどちらかを答え…

LINE Verda プログラミングコンテスト(AtCoder Beginner Contest 263)

4完。 各問題 A - Full House どう解くのが最適なのかわからず。 自分はサイズ13の配列を作って出現数をカウントして、3と2があればYesとしました。 B - Ancestor P_Nから遡ればよいだけです。 C - Monotonically Increasing 与えられた条件で狭義単調増加は…

第三回日本最強プログラマー学生選手権-予選-(ABC262)

3完。19:12。 各問題 A - World Cup 4で割った余りが0のときY+2、1のときY+1、2のときY、3のときY+3です。自分は安全にif-elseで4通り書きました。 B - Triangle (Easier) どの辺が連結しているかをmap<int, set>で持って全探索しました。 C - Min Max Pair 条件を満た</int,>…

AtCoder Beginner Contest 261

4完、16:28。 各問題 A - Intersection 算数でやろうとすると場合分けでひどい目に合いそうだったので、整数の配列を作って塗られている部分に+1をして、2になっている部分が両方で塗られているとしました。 自分はうっかり閉区間でやってしまい、あとで答え…

AtCoder Beginner Contest 260

4完4WA。 各問題 A - A Unique Letter どうやるのが正解なのかよくわからず...。 自分は vector<int>(26) で各文字の出現数を数えて、1つのものを出力するようにしました。 B - Better Students Are Needed! どうやるのが正解なのかよくわからず2...。あと誤読し</int>…

AtCoder Beginner Contest 259

4完1WA。 各問題 A - Growth Record MがX以上なら答えはもちろんTです。そうでなければ、まずT - (D * X)で0歳時点の身長を求め、それに(D * M)を足せばM歳時点の身長が求められます。 B - Counterclockwise Rotation 行列なり三角関数なりで計算すればよい…