CS Academy

CS Academy: Growing Segment

問題と解法 記憶力があれなので同じ問題を何度も解く。kenkoooo.hatenablog.com コード use std::cmp; use std::collections::BTreeSet; macro_rules! input { (source = $s:expr, $($r:tt)*) => { let mut iter = $s.split_whitespace(); input_inner!{iter…

CS Academy: Growing Segment

問題 https://csacademy.com/contest/archive/task/growing-segment/ 解法 いつもありがとうございます。 削除しても大丈夫な辺を下から見ていく x[i] -> x[i+1] を削除するときことを考える x[i+1] は削除して問題ないので消す。 x[i+2] は消せるか? (x[i]…

CS Academy Round #34 Point in Kgon

復習 問題 https://csacademy.com/contest/round-34/task/point-in-kgon/ コード import java.util.Scanner; public class Main { private static final int MOD = (int) (1e9 + 7); public static void main(String[] args) { Scanner in = new Scanner(Sys…

CS Academy Round #36 BBox Count

復習 問題 CS Academy コード import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { private static final int MAX = 2500; private static long count(ArrayList<Integer> list, Fen</integer>…

CS Academy Round #34 Point in Kgon

問題 https://csacademy.com/contest/archive/task/point-in-kgon/ 解法 これを見ました。 http://kmjp.hatenablog.jp/entry/2017/06/23/0930 コード import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.uti…

CS Academy Round #36 BBox Count

問題 https://csacademy.com/contest/round-36/task/bbox-count/ コード import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.NoSuchElemen…

CS Academy Round #14 Subarrays Xor Sum

問題 https://csacademy.com/contest/round-14/task/subarrays-xor-sum/ 解法 eha くんに解説をしてもらってようやく理解した。各ビットごとに独立なので、ビットごとに分ける。0と1のみの数列の長さ k 以下の数列の xor の合計値をとりたい。 i 番目の数を…

CS Academy Round #29: Root Change

問題 https://csacademy.com/contest/round-29/task/root-change/ツリーの各頂点 i について、 i を根とした時に切断してもツリーの高さが変化しない辺の数を出力してください。 解法 editorial のコード通りです。いわゆる全方位木dpと呼ばれる手法です。 …

CS Academy Round #12 Prefix Suffix Counting

問題 https://csacademy.com/contest/round-12/#task/prefix-suffix-counting/巨大な整数 N と M が与えられる。M は K 桁である。この時、1 以上 N 以下の範囲で、上 K 桁と下 K 桁がともに M と一致する整数は何通りあるか。 解法 整数 N の桁数を L とす…

CS Academy Round #11 A Single One

問題 https://csacademy.com/contest/archive/#task/a-single-one/N 個の整数からなる数列があり、S 番目だけ 1 で残りの数字は 0 である。この数列に対して「K 個の連続する区間を選択し、左右反転させる」という操作を行うことができる。またM個の位置が与…