Toy と帽子と ADP BE

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

competitive programming

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 として、子の世代は親の世代…

AtCoder Regular Contest 151

1完。 各問題 A - Equal Hamming Distances まず、S[i] == T[i]ならそこは0でよいです。以下S[i] != T[i]の場所だけについて考えます。 SとTの1の個数をそれぞれsn, tnとすると、snとtnが共に偶数(または共に奇数)でなければ構築不可です。(入力例2のパタ…

パナソニックグループプログラミングコンテスト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 …

AtCoder Regular Contest 149

3完。 各問題 A - Repdigit Number 割り算の筆算が何をやっているかを思い出してください。そうしたら解けます。わかった瞬間めちゃくちゃ感動しました。 B - Two LIS Sum (無証明です...) どちらかを昇順にソートして(LISはもちろんN)もう一方のLISを求…

京セラプログラミングコンテスト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 - …

AtCoder Regular Contest 148

2完。 各問題 A - mod M まず、全てが奇数の場合(または全てが偶数)の場合は、2で割れば余りが1(または0)になるので答えは1です。そして偶数と奇数の両方を含む列の場合、2で割ると余りは0と1の2種類なので、答えは最大でも2です。 Mで割ってR余る数を列…

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

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

AtCoder Regular Contest 147

2完2WA1RE。 各問題 A - Max Mod Min multisetを使って愚直にシミュレーションすればよいです。 multisetのerase(int)を使ってしまい、1WA。何年c++で競プロやってんですか...。 (追記) これc++の暴力で通ったらしいです。A mod B < Bなので、最初にソート…

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...。…

AtCoder Regular Contest 146v

1完2WA。 各問題 A - Three Cards 桁数が多いもの -> 数字が大きいもの、の優先順位で3つ取ってきて、それらの並べ替え6通りを全部試せばよいです。 6通り試すのをうっかりして、取得順で並べてしまい1WAはまだいいとして、コンテスト開始前に書いていたNを…

AtCoder Grand Contest 058

1完1WA。45:08 + 5:00。 これで5完した昨日のABCよりパフォ上らしいですよ?! 各問題 A - Make it Zigzag まず1, 2, 3番目を見ます。これらの大小関係は1 < 2 > 3となってほしいので、これらの3つの数の中で最も大きいものを真ん中に持ってきます。 次に3, …

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 Regular Contest 145

2完4WA。 各問題 A - AB Palindrome 実は両端を除いては任意のAB文字列を作ることが可能です。両端については左端がBで右端がAのときは無理です。またN = 2, S = "AB" も無理です。 B - AB Game nがA未満のときは、Aliceは何もできないので勝てません。よっ…

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 Regular Contest 144

3完1WA。 コンテストで600点問題通したのは(記憶が正しければ)1年8ヶ月ぶりくらいらしいです。青パフォも今年初めて。 各問題 A - Digit Sum of 2x x + xが繰り上がりの発生する'x'だったときと発生しない'x'だったときを考えると、前者のf(x) <= 後者のf(…

AtCoder Beginner Contest 259

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

AtCoder Beginner Contest 258

4完。しかしBに40分以上持っていかれました...。 各問題 A - When? 分が一桁になるときが面倒なので、書式つきprintでやるのが正道でしょうか。自分は0 < 10 < 60 < 70 < 100の場合分けをしました。 B - Number Box 縦と横を勘違いする 方向を最初に固定では…

AtCoder Regular Contest 142

2完6WAで緑落ち。 各問題 A - Reverse and Minimize まずKが10の倍数であるかKを反転したK'がKより小さい場合、答えは0です。 そうでない場合、KとK'がN以下なら答えになりえますし、それらに10を掛けていってN以下である間は答えとなりえます。(KとK'が同じ…

東京海上日動プログラミングコンテスト2022(AtCoder Beginner Contest 256)

4完3WA。 1年1ヶ月ぶりの茶Diff...。 各問題 A - 2N (int)pow(2, N) B - Batters シミュレーションすればよいです。 C - Filling 3x3 array 枝狩りしながら再帰すれば間に合います。実装がとても面倒くさいことになりましたが...。 D - Union of Interval 座…

エイシングプログラミングコンテスト2022(AtCoder Beginner Contest 255)

4完1WA。 各問題 A - You should output ARC, though this is ABC. ちょっと方針に迷って、素直に二次元配列を作って出力しました。この問題ならif文4つ書くのもありっちゃあり。 B - Light It Up さんざん迷走したあげく、二分探索でときました。 最初は公…