mayoko’s diary

プロコンとかいろいろ。

2016-02-14から1日間の記事一覧

Educational Codeforces Round 5 E. Sum of Remainders

問題 codeforces.com 解法 前似たような問題解いてましたね… mayokoex.hatenablog.com 上の記事のは問題設定がわかりにくいですが, 今回のは問題設定が率直でわかりやすいです。10^7 程度までは正直に余りを計算します。それ以上の数での余りは, n/div の商…

Educational Codeforces Round 5 D. Longest k-Good Segment

問題 codeforces.com 解法 しゃくとり法やるだけ, なんですがバグらせまくりました…区間系書くときは, 「閉区間か半開区間か」とか「区間がどのような性質を持っているか」とかは意識すべきですね。そういえば珠玉のプログラミングにもそんなことが書いてあ…

Educational Codeforces Round 4 E. Square Root of Permutation

問題 codeforces.com 解法 順列では「順列 p の i 番目の値が p[i] だったら i -> p[i] に有向辺を貼ってグラフを作る」というのがよくあります。この考えで問題文の順列 q のグラフを作り, そこから p = q^2 を作ることを考えると, p[i] は, 「q のグラフで…

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

問題 codeforces.com 解法 未だに問題の意味が正確にはわからないのでアレなんですが, 現れる数ごとに区間が重なっている数を +1, -1 していって, 重なる数が k 以上のところを取り出していけば良いです。 int main() { int n, k; cin >> n >> k; vector<pii> mem</pii>…

第2回 ドワンゴからの挑戦状 本選 B - 道迷い

問題 dwango2016-honsen.contest.atcoder.jp 解法 速度 v に対して二分探索します。check(v) = (速度 v で足りるかどうか) というのは, dp で確かめることが出来ます。dp[l][r][rflag] = (区間 [l, r] は既に到達済みという状態になるための最短時間(rflag =…