Toy と帽子と ADP BE

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

ARC

AtCoder Regular Contest 174

B のみ 1完 各問題 A - A Multiply (C が正数の時)非負とそれ以外のものをまとめて、絶対値の小さい負数と大きい正数もまとめて、一番大きいところに C をかけるとよい、のような方針でやったんですが、テストケース半分くらい WA。 第一感は累積和だった…

AtCoder Regular Contest 172

1完3WA 各問題 A - Chocolate (雑です) 大きいチョコから確定させていけばよく、あまりは ######### aaaabbbb11 ######### ccccdddd11 ######### -> eeee222222 ######### 3333333333 ######### 3333333333 ^^^ 渡す部分がアルファベット、余らせる部分が…

AtCoder Regular Contest 171

1完2WA 各問題 A - No Attacking ルークの数 A が N を上回った場合、当然 "No" です。 それ以外の場合でポーンを置けるのは、N - A が N / 2 以下の時は (N - A)^2 マスです。こんな感じ。 R######## #R####### ##R###### ###R##### ####R#### #####R### ##…

AtCoder Regular Contest 170

1完2WA 各問題 A - Yet Another AB Problem 気合の if 文... 前からみていって、S, T が ともに A なにもしなくてよい A と B S の B をすでに A に変換している それを一つ消費することでコストなしで変換可能 そうでなく、そこまでに S が A のときがある …

estie プログラミングコンテスト2023 (AtCoder Regular Contest 169)

1完1WA1TLE 各問題 A - Please Sign 通したけど、うまく説明する自信がありません...。 まず、P を木にしたとき一番深い葉がもっとも A_1 に強く関与するので、操作を充分な回数繰り返したときはそこだけを気にすればよいです。というわけで、一番深い部分の…

ALGO ARTIS プログラミングコンテスト2023 秋 (AtCoder Regular Contest 168)

1完3:25 各問題 A - 連続する m 個の > について、転倒数は m * (m + 1) / 2 になります。 < の部分でほかの部分に影響を与えないように十分に差をとった数を設定すれば、個々の > 部分の転倒数を足し合わせたものを最小値とできます。 B - Arbitrary Nim こ…

AtCoder Regular Contest 167

1完 各問題 A - Toasts for Breakfast Party 同じ皿に2枚乗せるときはできるだけ小さいものから選ぶのがよく、2枚の組は折りたたんでペアを作る(伝わらない)とよいです。 入力例3 の 12, 9 のパターンなら、ソートして {3, 4}, {2, 5}, {1, 6}, {7}, {8}, …

AtCoder Regular Contest 166

2完 各問題 A - Replace C or Swap AB 'C' は 'A' や 'B' に変えることはできても移動させることはできないので、Y_i が C のとき X_i が C でなければ一致させることはは不可能です。よって、以下 Y について C である場所は X についても C であるときにつ…

AtCoder Regular Contest 165

1完8:28 各問題 A - Sum equals LCM 最小公倍数がNの方の条件は、Nを素因数分解して素因数の種類が複数であれば満たすことが可能です。60 = 2^2 * 3 * 5 であれば {4, 3, 5} という要領で各素因数ごとに A をとれば最小公倍数がNになります。素因数がひと種…

AtCoder Regular Contest 164

ACの2完1WA 各問題 A - Ternary Decomposition 残り回数が残った数を上回らないように貪欲にとる、残り回数と残った数が一致したらあとは 30 を並べればよいのでおわり、取れるのが 30 のみになったら残り回数と残った数が一致してないと取り切れないのでだ…

AtCoder Regular Contest 163

3完3WA 各問題 A - Divide String Nがたかだか2000なので、s[0] <= s[i] である i (1 <= i < N) について、s[0, i) < s[i, N) であるかどうかをすべてチェックすればよいです。 s[0, i) < s[i, N) を s[0, i) <= s[i, N) として 1WA...。 B - Favorite Game …

AtCoder Regular Contest 160

1完、56:19。 各問題 A - Reverse and Count f(1, x) と、Lを先頭に固定して考えてみると、A_1 > A_x となるような x をとった場合は、その順列は先頭から 1 番目 ~ (A_1 - 1) 番目となります。A_1 < A_x の場合は後ろから1 番目~ (N - A_1) 番目となりま…

AtCoder Regular Contest 159

1完 各問題 A - Copy and Paste Graph i から j への有向辺が存在するなら、Xの作り方から、i から j + mN への有向辺も存在しますし i + mN から j への有向辺も存在します。 というわけで、最初に与えられた行列をもとにワーシャルフロイドで頂点間の距離…

AtCoder Regular Contest 158

1完 各問題 A - +3 +5 +7 まず、3つの数の偶奇がそろっていなければ、一生そろうことはないのでその時点で -1 を出力して終了です。 そうでない場合、3つの数をソートしてから (3, 2, 1) を繰り返します。この繰り返しは2通りで 小さいほうの2つがそろうまで…

AtCoder Regular Contest 157

1完1WA。 各問題 A - XXYYX 基本的に |B - C| <= 1 なら条件を満たせます。 ただし、AもBも0ではない場合でBもCも両方0になることはありえません。これに引っかかって1WA。 B - XYYYX XがK以上のときは気合でなんとかなった(はず)。Yができるだけつながる…

AtCoder Regular Contest 156

1完2WA。 各問題 A - Non-Adjacent Flip まず、表のコインが奇数枚のときすべて裏にすることはできません。表表 -> 裏裏で -2、裏裏 -> 表表で +2、表裏 -> 裏表で増減なしなので、どのような i, j を選んでも表の数の偶奇は変化しないからです。 表が0枚の…

AtCoder Regular Contest 154

2完3WA。 各問題 A - Swap Digit A > B のとき A と B を入れ替えて A に小さい数字が集まるようにしたとき 'A*B` は最小になる(気がした)ので、そのとおりやるとACします。 しかし私は、2年以上使っていた巨大な数の剰余を求めるスニペットがバグっており…

AtCoder Regular Contest 153

2完2WA1RE。 各問題 A - AABCDDEFE N + 100000 - 1を上位の桁から問題タイトルのABCDEFに当てはめていけばよいです。 -1 するのは、1番目が0だからですが、それをうっかりして変な方法で解いてしまい 1WA。もったいない。 B - Grid Rotations まず、同じ行に…

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のパタ…

AtCoder Regular Contest 149

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

AtCoder Regular Contest 148

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

AtCoder Regular Contest 147

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

AtCoder Regular Contest 146v

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

AtCoder Regular Contest 145

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

AtCoder Regular Contest 144

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

AtCoder Regular Contest 142

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

AtCoder Regular Contest 140

2完、8WA。やりすぎたー。 各問題 A - Right String ある文字列Uの繰り返しの形にできれば、種類数はUの長さLにすることができます。Uの繰り返しにするためにはL文字間隔で同じ文字が出現すればよいです。 つまりabcabcabcなら、長さ3の文字列abcの繰り返し…

AtCoder Regular Contest 139

1完、29:37。 各問題 A - Trailing Zeros 以下、0オリジンで。 xに対して、T_iだけ下位ビットを0で埋める ctz(A_i) = T_i を満たすため xに2^T_iを加算する 0埋めした後のxは元のx以下なので、狭義単調増加の条件を満たすため 演算後の数値は少ないに越した…

AtCoder Regular Contest 136

1完、3:22。 ほぼ2時間椅子を温めているだけのやつ・・・。 各問題 A - A ↔ BB AをすべてBBに変換してから、前から順にBBをAに変換すればよいです。BABB -> BBBBB -> AABみたいな感じで。 B - Triple Shift O(N2)が通りそうなので貪欲にやります。(距離2は…

AtCoder Regular Contest 135

1完1WA。 各問題 A - Floor, Ceil - Decomposition Writerがmaspyさんなので、メモ化再帰を投げれば通ると信じて投げると通ります。 まあどんどん半分にしていく過程で黒板に書かれる数字はとても多くなりますが、種類は多くないので。 実は最初に愚直解を投…