ながめも

競技プログラミングについて

AtCoder Beginner Contest 177 ABC177 参加記

5完2ペナで青パフォでした。初の青パフォstreak2で嬉しいです。 jjjjjjjtgpptmjjさんのAtCoder Beginner Contest 177での成績:605位パフォーマンス:1732相当レーティング:1371→1412 (+41) :)Highestを更新し、3 級になりました!#AtCoder #ABC177 https:/…

AtCoder Beginner Contest 176 ABC176 参加記

D - Wizard in Maze 解説 実装 E - Bomber 解説 実装 列の最大をとる range max queryのセグ木 F - Brave CHAIN 50分5完で青パフォでした。 そういえば競プロを始めてから2年が経っていました。 D - Wizard in Maze 問題へのリンク 解説 見た瞬間にグリッド…

AtCoder Beginner Contest ABC025 C - 双子と○×ゲーム

C - 双子と○×ゲーム 解説 実装 C - 双子と○×ゲーム 問題へのリンク 解説 まず、置く順番は通りありますが、すべて試していいだろうとわかります。順列の列挙は、簡単に行う場合はnext_permutationを使いますが、今回は順列の生成とともにゲーム木を構成した…

AtCoder Grand Contest AGC005 B - Minimum Sum

B - Minimum Sum 解説 実装 B - Minimum Sum 問題へのリンク 解説 区間がたくさん与えられるので、その中のある値の和を求めよという問題は多くありますが、基本的に区間をすべて列挙して解くことはできません。今回も例によってそのパターンで、ある値が、…

AtCoder Beginner Contest 174 ABC174 参加記

Eまでノーペナ30分だったのにF既出を検索できずにしょっぱいパフォを取ってしまいました。もったいなかったです。 jjjjjjjtgpptmjjさんのAtCoder Beginner Contest 174での成績:1161位パフォーマンス:1476相当レーティング:1307→1325 (+18) :)#AtCoder #A…

AtCoder Beginner Contest ABC023 C - 収集王

C - 収集王 解説 実装 C - 収集王 問題へのリンク 解説 行にある点の個数が個のとき、列が個のとき和がになりそうなところから考察を進める。 ここで、列が個の列の個数を追加すれば良さそうだが、ここに罠がある。その列に点があるときはその列は、点がない…

AtCoder Grand Contest AGC025 B - RGB Coloring

B - RGB Coloring 解説 実装 B - RGB Coloring 問題へのリンク 解説 各マスの状態が4種類ある 無 デフォルトを無だと考えて、そこに得点を割り振っていくと考えると、にするかしないかを独立に決めて、重なったらにすると考えればよいことがわかる。 よって…

AtCoder Beginner Contest ABC008 C - コイン

問題へのリンク 解説 実装 公式解説 解説 公式解説とは異なる方針でACしたので記録を残しておきます。 まず、いわゆる主客転倒(寄与ゲー)と呼ばれる問題だと捉えます。 今回求めたいのは、の並びのうち、表のコインの数の期待値ですが、 これを期待値では…

Codeforces Round #658 (Div. 2) 参加記

B - Sequential Nim 最初にに到達した方が、常に先に山に手をつけることができる。これは、次がなら、その山をだけ残して相手に渡し、次がの場合は山を全て取ることで実現できる。よって、到達するまでの回数を数えればよい。注意点として、最後の山は数えな…

Codeforces Round #657 (Div. 2) 参加記

A Acacius and String B Dubious Cyrpto C Choosing flowers A Acacius and String なら、毎回ある一箇所を変更して一個だけかどうかを判定すればよいです。は難しそうです。 Div2-Aにしては実装が重いですね。 void solve(){ int N; string S; cin >> N >> …

エイシング プログラミング コンテスト 2020 E - Camel Train

コンテスト参加記はこちら coonevo.hatenablog.com 解説 実装 問題へのリンク 解説 どう置いても必ず得られるベース得点がある ベース得点を先に考慮すると、あるラクダについて左右の好みと得点という2つのパラメータのみを考えるだけでよくなる 左右の好み…

エイシング プログラミング コンテスト 2020 参加記

A - Number of Multiples 解説 実装 B - An Odd Problem 解説 実装 C - XYZ Triplets 解説 実装 D - Anything Goes to Zero 解説 実装 E - Camel Train 記事を分けました F - Two Snuke まだ見てません。 A - Number of Multiples 問題へのリンク 解説 愚直…

AtCoder Beginner Contest 173 ABC173 F - Intervals on Tree

問題へのリンク 解説 まず、「閉路のない無向グラフにおいて、連結成分数 = 頂点数 - 辺数」が成り立つことを使います。 すると、問題は以下のように言い換えられます。 頂点数は の計算でで求められます。は区間の長さです。 辺数に関しては、について考え…

AtCoder Beginner Contest 173 ABC173 参加記

24分4完水パフォでした。少しhighestを更新しましたが、Eの実装で凡ミスしていて悲しくなりました。 A - Payment 解説 実装 B - Judge Status Summary 解説 実装 C - H and V 解説 実装 D - Chat in a Circle 解説 実装 E - Multiplication 4 記事を分けまし…

AtCoder Beginner Contest 173 ABC173 E - Multiplication 4

問題へのリンク 解説 まずの場合は調整しようがないのでやります。負の数が奇数個あったら負にします。 以降はとします。 が奇数の場合、正の数が存在するならその最大値をまず使うことにします。 すると、以降に選ぶ数が偶数個になります。 正の数が存在し…

Codeforces Round #654 (Div. 2) E - Asterism

問題概要 制約 解説 E1 E2 実装 E1 Easy Version 問題へのリンク E2 Hard Version 問題へのリンク 問題概要 Yuzuはキャンディー個を持っています。人の敵がいて、敵は個キャンディーを持っています。Yuzuは長さの順列の順番に従って敵と闘います。 戦闘では…

AtCoder Beginner Contest 058 ABC058 D - 井井井

解説 問題の言い換え 面積Sの計算 登場回数Cの数え上げ ~ xとyは独立 ~ シグマの計算 実装 問題へのリンク 解説 問題の言い換え 数え上げの典型として、「問われている対象を別のものの数え上げで考える」という方針があります。今回もその例に漏れず、出て…

AtCoder Beginner Contest 172 ABC172 E - NEQ 解説

E - NEQ 問題文 制約 解説 実装 E - NEQ 問題へのリンク 問題文 以上以下の整数からなる長さの数列との組であって、以下の条件をすべて満たすものの個数を求めよ。 なる任意のについて なる任意のについてかつ 制約 解説 まず、対称性から、数列を固定して考…

AtCoder Beginner Contest 172 ABC172 参加記

72分5完2ペナで青パフォでした。数え上げを少し練習してたのがよかったんだと思います。 C - Tsundoku 解説 実装 D - Sum of Divisors 解説 実装 E - NEQ F - Unfair Nim C - Tsundoku 解説 令和ABC-Cなのでとで小さい方を取っていく貪欲解を考えますが、す…

AtCoder Beginner Contest 170 ABC170 参加記

3完で緑パフォでした。Dでvectorやmapを使うのをやめたら通ったので泣きそうです。 -> 追記:vectorは問題なくて、mapのlogがTLEの原因でした。 提出へのリンク C - Fobidden List D - Not Divisible C - Fobidden List 0 ~ 1000くらいまで、確認します。に…

第三回 アルゴリズム実技検定 参加記

第三回アルゴリズム実技検定(PAST)を通常受験(not リアルタイム)しました。結果は中級(76点)でした。 まだ解いていない人はここから解いてみましょう! atcoder.jp アルゴリズム実技検定の公式対策本が発売されました。 アルゴリズム実技検定 公式テキ…

AtCoder Beginner Contest 106 D - AtCoder Express 2

atcoder.jp 区間を二次元座標とみなし、二次元累積和で。 一方、クエリ先読みして区間を終端ソートすると、終端が前の区間から順に確認していくことで問題を解くことができる。終端の順番を固定し、始端の分布をBITでもち、和をで得ることができ、計算量はと…

AtCoder Grand Contest 011 AGC011 A - Airport Bus

atcoder.jp 左端を固定して、条件を満たすように右に伸ばしていくのを貪欲に行う。実装は尺取り法が楽になる。 int main() { ll N, C, K; cin >> N >> C >> K; vector<ll> T(N); rep(i,N)cin >> T[i]; sort(all(T)); int r = 0; int ans = 0; for(int l = 0; l <</ll>…

2020年5月の振り返り

2020年6月になりましたので、目標の振り返りをします。 生活 部屋の掃除(まあ) 自炊(まあ) 人生 研究の進捗を出す(ごめんなさい) 競プロ AtCoder rating 1400(1317 冷えました) Codeforces rating 1700(1565 激冷えしました) Solve Sum: 1134(100…

Codeforces Round #645 (Div. 2) 参加記

コンテストへのリンク ABCで冷えました。悲しい。 Cで詰まりました。。。 A B C D A 問題へのリンク 長方形の面積のだいたい半分。 void solve(){ ll a, b; cin >> a >> b; cout << (a * b + 1) / 2 << endl; } B 問題へのリンク ソートして左全部取るとした…

yukicoder No.1048 Zero (Advanced)

yukicoder.me 以上以下の数から重複を許して個の和を取ったときにできる数の候補は、 以上以下である。 よって、以上以下での倍数がいくつあるか調べればよい。 間は全部できる系である。 int main() { ll L, R, M, K; cin >> L >> R >> M >> K; ll l = L*K;…

AtCoder Beginner Contest 163 ABC163 D - Sum of Large Numbers

atcoder.jp 個数と和が同じなら同じ数、個数が異なるなら和が同じでも異なる数にカウントする問題。 個選ぶと決め打ったとき、できる数は 前個の和と、後ろ個の和の間すべて である。 これは簡単な帰納法で証明できる。 int main() { ll N, K; cin >> N >> K…

yukicoder No.649 ここでちょっとQK!

yukicoder.me 類題がこれとこれ。 coonevo.hatenablog.com coonevo.hatenablog.com 上記の類題と違うのは値の範囲が広いこと。こういうやつはクエリ先読みすると種類数が少ないから順序データに座標圧縮すればよい。あとはライブラリでやるだけ。 座圧のうま…

AtCoder Regular Contest 021 ARC021 C - データ構造

atcoder.jp 類題がこれ。 coonevo.hatenablog.com ライブラリでやるだけ。 template<typename T> class BIT{ public: int N; vector<T> data; BIT(T _N):N(_N){ data.assign(N+1, 0); }; // a is 1-indexed void add(int a, T w){ for(int x = a; x <= N; x += x & -x)data[</t></typename>…

Educational Codeforces Round 87 (Rated for Div. 2) D - Multiset

コンテスト参加記はこちら。 coonevo.hatenablog.com D - Multiset 問題概要 解説 D - Multiset 問題へのリンク 問題概要 集合の初期状態が与えられる。 以下2つのクエリを処理したあと、残っている要素のいずれかを出力せよ(空の場合は-1)。 要素を追加。…