geam1113’s diary

主にAtcoderのコンテストの備忘録を書きます。AtCoder緑と水色を行ったり来たりしています。

ABC241 参加記録

コンテスト中AC:A〜C,E コンテスト後、Dは自力AC 2022/07/06追記 Eの実装に単射や同値類という記載がありますが、誤りです。 無視してください。 D - Sequence Query E - Putting Candies D - Sequence Query 実装が複雑になりましたが、自作双方向連結リス…

ABC239F Construct Highway

解説AC 問題へのリンク 解説1へのリンク 解説2へのリンク web解説を見てよくわからなかったので、自分なりに証明してみました。 素人なので、間違っていたらすみません。 森と、森の各連結成分について、他の連結成分と連結しなければならない次数の不足数が…

ABC240 参加記録

コンテスト中AC:A〜E E - Ranges on Tree コンテスト中は確信が持てないまま通してしまいました。 解法に至った経緯をメモしておきます。 まず、問題文の意味がパッと見で理解できませんでした。そこで、入出力例を確認して、ざっくりと以下のような制約であ…

ABC239 参加記録

コンテスト中AC:A〜E B - Intenger Division 以前、このような自作関数を作っていました。 template<typename T> T Floor(T a, T b) { if ((a<0 && b<0) || (a>0 && b>0)) return a/b; else return (Abs(a)+Abs(b)-1)/Abs(b)*-1LL; } これを使うことで、Floor(X,10LL)で</typename>…

ARC135 参加記録

コンテスト中AC:A,C Bはコンテスト後自力AC。もう少しで解けそうでした。 A - Floor, Ceil - Decomposition 実際に10まで、xとfloor(x/2)×ceil(x/2)のどちらが大きいか手計算しました。 すると、 x≦4なら、x≧floor(x/2)×ceil(x/2) x≧5なら、x

ABC237F |LIS| = 3

解説AC 問題 公式解説 公式解説で解法だけみて、実装は自力でしてみようと思ったのですが、これも上手くいきませんでした。結局、実装も解説のものを確認しました。 LISの長さが3未満の保持方法 未確定の部分はinf、今回ならM+1としておけばよいようです。 …

ABC234F Reordering

解説AC 問題へのリンク 公式解説 単純に部分列を得るだけなら部分列DPなどが考えられますが、今回はすべての並び替えを得る必要があるので適用できません。 重複を含む並び替えの計算方法から考えてみます。 の選んだ個数をそれぞれとします。この時の並び替…

ABC238E Range Sums

解説AC 問題へのリンク 公式解説 公式解説のメモ程度です。 の累積和をとおくと、与えられる情報は、 という風になり、 との一方が分かれば、もう一方がわかる という関係になる。 この関係をグラフ化し、とが連結ならYes。 ここまでが公式解説の内容です。 …

ABC238 参加記録

コンテスト中AC: A〜D A - Exponential or Quadratic D - AND and SUM 公式解説メモ 連立方程式の解き方 A - Exponential or Quadratic から、が64bit整数型に収まらなければ、直ちにYesです。 よって、64bit型を超えるまでは、実際に2を掛けていきます。そ…

ABC237E Skiing

コンテスト中にACしたものの、after_contestでTLEで、嘘解法でした。 この記事は公式解説を自分用にまとめたもので、新たな情報などは無いです。 ここでは、標高が低いところから高いところに行く坂を下り坂、逆を上り坂と言うことにします。 2個目の条件を…

ABC237 参加記録

コンテスト中AC:A〜E Eは嘘解法(Cも若干そうでしたが)だったので、ここでは省略します。 C - kasaka D - LR insertion C - kasaka 先頭から連続しているaの個数をhead、末尾から連続しているaの個数をtailとします。 先頭に付け加えるのに必要な個数は、tail…

ARC134 参加記録

コンテスト中AC:A,B Cはコンテスト後自力AC A - Bridge and Sheets B - Reserve or Reverse C - The Majority A - Bridge and Sheets 便宜上、を追加しておきます。 最初からかけられているシートのうち、最も右端をとします。最初としておきます。 にかけら…

ARC133 参加記録

コンテスト中AC:A,B A - Erase by Value B - Dividing Subsequence A - Erase by Value 同じ数は消えるので、一旦連続して重複した数について、重複を削除して考えます。 から始めて、単調増加している間は、消すと辞書順では大きくなってしまうので、消さな…

ABC236 参加記録

コンテスト中AC:A〜C D - Dance 状態遷移を伴うDFS 考慮すべき事項 状態の管理に必要な情報 情報の受け渡し方法 値渡し グローバル変数等で共有 終了条件 D - Dance 解けなかったので、反省点含めて記録します。 まず、Nが小さいことから全探索が可能と予想…

ABC235F Variety of Digits

自力AC(一度TLEになったので、解法を見て、合っているか確認した) 条件を満たす桁に関する問題 以下の整数全てに関する問題 という条件から、桁DPが有力候補となります。 桁DPに関する情報はネット上に多くあるため、ここでは割愛しますが、大雑把に説明しま…

ABC235 参加記録

コンテスト中AC:A〜E C - The Kth Time Query D - Multiply and Rotate E - MST + 1 C - The Kth Time Query 二次元配列を用意し、には、が出現したインデックスを順に記録します。 クエリが与えられた時、まず、のサイズがより小さい場合(出現数が)は、-1を…

ABC216G 01Sequence

問題へのリンク 解説AC 牛ゲーとのことで、解法は公式解説を見るのが良いかと思います。 ここでは、自分なりの理解をつけ足したいと思います。 牛ゲーについては、別記事にまとめました。 geam1113.hatenablog.com また、ネットで調べると色々出てきます。 …

牛ゲー

2022/01/15 修正 ・有向グラフの図追加 初めに 牛ゲーとは 最大値と最短経路 具体例 初めに AtCoderの問題で牛ゲーが出たので、まとめておきます。数学的に厳密でない部分や、誤りを含む場合もありますのでご了承ください。 牛ゲーとは 以下の2つの問題があ…

ABC234 参加記録

C - Happy New Year! D - Prefix K-th Max E - Arithmetic Number C - Happy New Year! 非負整数の2進数表記の1を2に変換する操作を考えます。操作後の値をとします。すると、以下が言えます。 とは一対一対応する。 非負整数の変換によって、0,2のみからな…

ABC233F Swap and Sort

解説AC。大体の解法は自分が想定したものと合っていました。 ここでは、を、頂点iに書かれた整数と表現します。 「i番目とj番目が交換可能」という条件を「頂点iと頂点jに無向辺がある」と言い換えます。 昇順に並び替えるとは、 すべての頂点について、とが…

ABC231 Minimal payments

解説AC お釣りの問題は過去出題例があります。 過去問では、 maspypy.com を参考にしました。 この解説と公式解説を踏まえ、まずは解法を書きます。 例として、 X = 35 A = {1,4,12} を考えます。 を円払うために必要な最小の硬貨の枚数 と定義します。 は、…

ARC132 参加記録

ARC

コンテスト中AC:A,B A - Permutation Grid B - Shift and Reverse A - Permutation Grid nの制約上、実際に構築することはできません。 このことから、の組みによって一意に定まるような法則性がありそうだと予測します。 白黒がどのように決定するか試して…

ABC233 参加記録

コンテスト中AC:A〜E C - Product D - Count Interval E - Σ[k=0..10^100]floor(X/10^k) C - Product ボールの数の総積がを超えないので、各袋からボールを1つ選んだ時の全組み合わせもを超えません。よって、得られる全ての積を配列に保存できます。 部分…

ABC232 参加記録

コンテスト中AC:A〜E C - Graph Isomorphism D - Weak Takahashi E - Rook Path C - Graph Isomorphism 順列全探索の問題です。 Pのあり得る組み合わせは最大で8!通りで、順列全探索で十分間に合います。 逆にNが8くらいまでなら順列全探索を疑うと良いかも…

ABC231 参加記録

コンテスト中AC:A〜D コンテスト後にFを自力ACしました。 D - Neighbors F - Jealous Two 自分の解法 公式解法 ユーザ解説(Wavelet Matrix) D - Neighbors 問題文の条件は簡単ですが、判定法に抜けなどがあり、WAをたくさん出しました。 問題文の条件を満た…

ARC129C Multiple of 7

解説AC ABCのこの問題のように類題は出題されています。しかし、このように逆に構成できることは思いつきませんでした。 右からi桁目までを10進数の整数としたとき、なる区間(j,i]を10進数としたものが7の倍数となる条件は、 を満たすことです。なお、10と7…

ARC131C Zero XOR

解説を見てAC 公式解説に詳しく書かれていますが、自分用にメモしておきます。 勝敗の決定 ・Nが奇数なら先手必勝 ・Nが偶数なら、1個取って0にできれば先手必勝、そうでなければ後手必勝 1個取って0になることの判定法 公式解説と少し違いますが、この方が…

ARC131 参加記録

ARC

コンテスト中AC:A,B A - Two Lucky Numbers B - Grid Repainting 4 A - Two Lucky Numbers 整数xの文字列表現をstr(x)とします。また、str(x)+str(y)は文字列の連結を表すこととします。 基本的にはstr(B/2)とstr(A)を連結させる方針となります。 しかし、B…

ABC230 参加記録

コンテスト中AC:A〜DEを解説ありで解きました。 A - AtCoder Quiz 3 B - Triple Metre C - X drawing D - Destroyer Takahashi E - Fraction Floor Sum A - AtCoder Quiz 3 公式解説より、setfillとsetwでleading zerosを実現できるらしいです。 B - Triple …

ABC227 Divisors of Binomical Cofficient

自力AC 全ての積をとるのは巨大過ぎて不可能です。 であり、また、約数の個数は素因数分解して、 となった時、 として求められます。 以上から、1つの方法として、 ・分母分子の個々の整数を素因数分解して、素因数の個数をカウントする ・分子の素因数の個…