2018-02-01から1ヶ月間の記事一覧
問題文 http://codeforces.com/problemset/problem/883/I 解法 求めたい値は二分探索で求めましょう. あとはある x にたいして題意を満たす分割が可能か調べます. 写真の値はソートしておくと,題意の分割は連続部分列の分割になります. その上で,以下の…
問題文 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0597 解法 汁が飛び散る範囲が小さいので,それを利用します. ある連続する8個の区間を考えると,そのなかで各小籠包がどの順で食べられるかさえわかれば,答えを求めることができます. …
問題文 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0624 解法 bitDP で解きます. あるマスにいるとき,それまでに買った屋台の情報を持つのですが,右か下にしかいけないことから,保存すべき場所が少なくなります. 具体的には,右,下,…
タイトルのまんま. 純粋関数型データ構造っぽさを意識して書いてみました. use std::rc::Rc; enum SkewHeap<T: Ord + Clone> { Empty, Node(T, Rc<SkewHeap<T>>, Rc<SkewHeap<T>>) } impl<T: Ord + Clone> Clone for SkewHeap<T> { fn clone(&self) -> SkewHeap<T> { match *self { SkewHeap::Empty => SkewHeap::Empty, S</t></t></t:></skewheap<t></skewheap<t></t:>…
問題文 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1386 解法 一方はいもす法やるだけなのはすぐわかると思います. もう一方が問題ですが,これも累積和で簡単に求まります. じつは,乗客 i のデータの区間 [a[i], b[i]] に対して,端点以…