きろく

特筆すべき記録のまとめ

2019-09-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 136:E - Max GCD

問題 解法 解答 問題 https://atcoder.jp/contests/abc136/tasks/abc136_e 解法 最終的な答えを g,操作後の A_i の値を a_i とすると,a_i % g == 0 であるから,(a_1 + a_2 + ... + a_N) % g == 0 であり,A 全体の総和は操作によって変化しないから,(A_1…

AtCoder Beginner Contest 136:D - Gathering Children

問題 解法 解答 問題 https://atcoder.jp/contests/abc136/tasks/abc136_d 解法 操作の回数が十分に大きいので,子供たちは "RL" となっているような 2 つの連続するマスを行き来するようになる.子供のいるマスが R であるとき,そのマスより右にある最も近…

AtCoder Beginner Contest 136:C - Build Stairs

問題 解法 解答 問題 https://atcoder.jp/contests/abc136/tasks/abc136_c 解法 後ろのマスから見ていき,H_i > H_(i + 1) であるような箇所があったら H_i を 1 削る.それでも H_i が高いままであれば答えは No になる.逆に,このような箇所がなく,全て…

Kodaman コンテスト:M - Mad Time Traveler

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/mad-time-traveler 解法 行先の候補にコスト 0 の有向辺を張ったグラフを考える.そして,各頂点に世界線変動率を 7 で割った余りごとに状態を持たせる拡張ダイクス…

Kodaman コンテスト:L - Let's Shoot!

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/lets-shoot/problem 解法 以下の DP を考える. dp(i, a, b, c) := i - 1 番目まで見て Type 1 に a 回,Type 2 に b 回,Type 3 に c 回トレーニングしたとき,i 番…

Kodaman コンテスト:K - Customers

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/k-customers-2 解法 一つ目のクエリは,各お客さんの入店・出店時刻を独立に考えることが出来るから,X と Y を昇順にソートしておき,std::upper_bound() を用いる…

Kodaman コンテスト:J - 異世界転生2

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/2-82 解法 まず,仕事を開始時刻が早い順にソートしておく.次に,以下の DP を考える. dp(i) := 次に i 番目の仕事をすることが可能な時,i 番目以降の仕事で得ら…

Kodaman コンテスト:I - is this tournament correct?

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/i-is-this-tournament-correct 解法 チームを試合数の少ない順にソートしておく.試合数が 1 であるもの(同率が複数ある場合は適当な 1 チーム)をその次に試合数の…

Kodaman コンテスト:G - Osmium_1008と時間旅行

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/osmium1008-and-timetravel 解法 年数が負の値になりうるので,全て 2*10^5 を加算して考える.ここで以下の DP を考える. dp(i, j) := i - 1 個目までの飴を使い,…

Kodaman コンテスト:F - disastrous gemini

問題 解法 解答 問題 https://www.hackerrank.com/contests/kodamanwithothers/challenges/disastrous-gemini 解法 A_i - B_i の差が大きい問題の時にクーラーを使うのが最適.初めに A_i の和と A_i - B_i の値を降順にソートしておき,A_i の和から A_i - …

AtCoder Beginner Contest 133:E - Virus Tree 2

問題 解法 解答 問題 https://atcoder.jp/contests/abc133/tasks/abc133_e 解法 適当な頂点を根とする根付き木を考える.根から DFS をしていく.頂点 v にいるとき,その頂点の子の配色の通り数を考える.子は頂点 v の親と頂点 v の色それぞれと互いに異な…

AtCoder Beginner Contest 133:D - Rain Flows into Dams

問題 解法 解答 問題 https://atcoder.jp/contests/abc133/tasks/abc133_d 解法 各山に降った雨の総和 S は A_1 + A_2 + ... + A_N であり,山 i と i + 1 に降った雨の総和 x_i + x_(i + 1) は A_i * 2 である.よって,山 1 に降った雨の量 x_1 は S - (A_…

AtCoder Beginner Contest 133:C - Remainder Minimization 2019

問題 解法 解答 問題 https://atcoder.jp/contests/abc133/tasks/abc133_c 解法 区間 [L, R] に 2019 の倍数が含まれているならば,答えは 0. そうでない場合,この区間の長さは 2019 未満であるから,i と j を全探索して答えを求めればよい. 解答 https:…

JOI '20 一次予選1回目:C - マージ (Merge)

問題 解法 解答 問題 https://atcoder.jp/contests/joi2020-yo1a/tasks/joi2020_yo1a_c 解法 動的配列(C++ では std::vector など)を用いる。数列 A, B が空であるかどうかは A.empty() が true であるかどうかで調べることができる。また、配列の末尾に要…

JOI '20 一次予選1回目:B - 母音を数える (Counting Vowels)

問題 解法 解答 問題 https://atcoder.jp/contests/joi2020-yo1a/tasks/joi2020_yo1a_b 解法 文字列 S を先頭から 1 文字ずつ見ていき、'a', 'i', 'u', 'e', 'o' のどれか 1 つに当てはまるとき、答えに 1 加算すればよい。実装は for 文と if 文を用いれば…

JOI '20 一次予選1回目:A - 3 つの整数 (Three Integers)

問題 解法 解答 問題 https://atcoder.jp/contests/joi2020-yo1a/tasks/joi2020_yo1a_a 解法 3 つの整数を受け取り、1, 2 の個数を if 文などを用いて数えればよい。計算量は O(1)。 解答 https://atcoder.jp/contests/joi2020-yo1a/submissions/7626706

東京工業大学プログラミングコンテスト2019:D - 素数取りゲーム

問題 解法 解答 問題 https://atcoder.jp/contests/ttpc2019/tasks/ttpc2019_d 解法 各 X_i は何回か (0 回かもしれない) 2 個ずつ取ることができる.X_i を最大何回まで 2 ずつ引いていくことができるかをまず調べる.この回数 + 1 だけ各山に石があると問…

東京工業大学プログラミングコンテスト2019:C - XOR Filling

問題 解法 解答 問題 https://atcoder.jp/contests/ttpc2019/tasks/ttpc2019_c 解法 -1 でない a_i の xor を t,-1 である a_i の個数を cnt とすると,0 以上 X 以下の数 cnt 個の xor が X^t となればよい.これは X^t が X * 2 以上であるときは構成でき…

PCK 2019 予選に出ました

競技開始前 競技開始直前 問題1~3 問題4 問題5 問題6 問題7 問題8 また問題6 競技終了後 本選に 競技開始前 文化祭初日でした.極めて忙しかったので,全く競プロをやっていませんでした.直前にセグ木を数本書いて競プロとは何か思い出そうとして…