2020-11-01から1ヶ月間の記事一覧

AtCoder AGC 029 C - Lexicographic constraints

問題リンク 解説 解が1となる場合を考えます。 解が1となるのはが狭義単調増加の場合のみです。 以下、解が2以上である場合を考えます。 明らかに解に単調性があるので二分探索です 解をとすると、文字列は進数の数字と考えるのが簡単で、 のとき のとき (要…

Codeforces Round #685 (Div. 2) - E1. Bitwise Queries (Easy Version)

問題リンク 解説 重要な事実として が成り立ちます。 よって、 に気づくと、 が5クエリで求まるので、 が5クエリで求まります。 あとは残りのクエリは とのxorをとればそれぞれ1クエリでわかるのでこの問題は解けました 提出コード codeforces.com

Codeforces Round #686 (Div. 3) - E. Number of Simple Paths

問題リンク 解説 問題文をよーーーーーーく読むと個の頂点と個の辺があって、連結です。 つまり、 のようにサイクルにひげが生えた形になります。 グッと睨むと、サイクルからの頂点からの最短経路がどこから来るかでグループわけできて、 同じグループなら…

TROC #16 E - Multiple Multiplication

問題リンク 解説 各要素において、その素因数毎にLCMの要素になる区間の幅はstackを用いるとならしで線形になります。 素因数分解は前計算をしていけば毎回でできます。 最後に繰り返し二乗法もすることを考えると、全体でで解けました 提出コード https://t…

TROC #16 D - Compassionate Companions

問題リンク 解説 単調性があるのは自明なので二分探索をします。 二分探索をすると、ダメな関係にedgeを結んだとき、このedgeで結んだところを一緒にしないように二つのグループに分けられるかという問題になります これはまさしく二部グラフ判定なので、こ…

半分全列挙 ( F - Programming Contest )を O(2 ^ (n / 2))で解く

問題リンク 解説 一般的に有名な半分全列挙はソートをする関係でになりがちですが、で解けるよという話をします。 まず、マージソートなどで有名な話として、ソートされた二つの列をソートされた状態でmergeするのはでできます。 C++ですと、std::merge とい…

yukicoder - No.1293 2種類の道路

問題リンク 解説 UnionFindUndoを持っていますか?僕は持っています。 道路と歩行者でそれぞれ頂点を用意し、それぞれ道路のみ歩行者のみいけるところをつなげておきましょう。 ここで、頂点1の場合で考えてみましょう。 1において、道路のみをつかっていけ…

Codeforces Round #620 (Div. 2) - F2. Animal Observation (hard version)

問題リンク Easyの記事まず読んでね jupiro.hatenablog.com 解説 被らない区間はが大きくなっても変わらないのでEasyと同様に解けばいい 問題は被るところで、被った場合は取る区間が1つの区間 とあらわせる!!!!! よって、1つの区間さえ見ればいいので…

Codeforces Round #620 (Div. 2) - F1. Animal Observation (easy version)

問題リンク EasyからHardへの誘導がいいね 解説 この制約ではが小さいのでこれが小さいことを利用する解法を考える。 i日目において、前日の区間を取った時の最大値 とdpを定義しよう。 そうすると、の区間をとるとき、前と区間が被らないのであれば要素をそ…

Educational Codeforces Round 98 (Rated for Div. 2) - E. Two Editorials

問題リンク 感動 解説 E:L[i]+R[i]でソート、問題ごとに境界を定めれば作問者二人のどちらに振り分けるかが一意に定まる あとは作問者ごとにBITで区間加算、区間和を取得すればO(N^2logN)— Ryota (@re_re0101) November 19, 2020 ↑の方針ですね。 自分が聞…

Educational Codeforces Round 96 (Rated for Div. 2) - F. Realistic Gameplay

問題リンク 解説 の期間でまだ倒していないのに、捨ててリロードする必要はありません。 よって、 として、毎回シミュレーションしてもと小さいので余裕で間に合います。 計算量はです 提出コード codeforces.com

Educational Codeforces Round 4 - F. Simba on the Circle

問題リンク 復元いる???? 解説 値が無駄にでかいので、[1, n]に座圧で収めましょう。 初期位置は値が0だとすると実装が楽です。 ここでdpを2つ考えます。 dp1[i][j] := 今数字iを取ろうとしていて、iを1つも取っていないときjにいるような最小値 dp2[i][…

Educational Codeforces Round 4 - E. Square Root of Permutation

問題リンク 解説 functionalグラフでかつ、とはpermutationなので、とはとなる有向グラフを考えた時、シンプルなサイクルになることがわかる。 となるを考えよう。 このとき、、となるが必要なことがわかる が偶数のとき とすればよい が奇数のとき となるの…

Educational Codeforces Round 4 - D. The Union of k-Segments

問題リンク 解説 区間の左端が小さいほうから見ていく。 以上になったら区間の左端になって、を切ったら区間の右端にする あとは実装するだけなのでコードを参考にしてください 提出コード codeforces.com

第14回日本情報オリンピック 予選 (JOI) F - 財宝 (Treasures)

問題リンク 解説 想定のではおそらくAtCoder上ではACするのは困難です。 実は半分全列挙はこのでできます。 詳しくは実装を見てください 提出コード atcoder.jp

JOI難易度8 感想

埋める E - シャッフル 実装やるだけ D - 散歩 回目の状態が簡単にわかるので、後はシュミレーション E - 認証レベル やるだけ sequence - 数列 (Sequence) 問題そのものはまともでおもしろいが、MLEが厳しいためにちょっと定数倍むだにとるけどねみたいな方…