多倍長整数
64ビットを越える整数を扱いたい場合はどうするか
1. 他の解法を考える
2. 多倍長整数に対応した言語を使う(オススメ!)
3. 128ビットなら収まりそうという場合は__int128を使う 紹介
- Codeforcesでは使えない
4. Boostのcpp_intを使う 参考
- AtCoder,AOJは使える
- Codeforces,yukicoderでは使えない
5. 自分でライブラリを作る
- Karatsuba法という掛け算を少し高速化する手法がある wikipedia
64ビットを越える整数を扱いたい場合はどうするか
1. 他の解法を考える
2. 多倍長整数に対応した言語を使う(オススメ!)
3. 128ビットなら収まりそうという場合は__int128を使う 紹介
4. Boostのcpp_intを使う 参考
5. 自分でライブラリを作る
http://codeforces.com/contest/900/problem/C
N個の[1,N]からなる順列Pがある。
この順列から1つの数を抜いて、recordの要素の数を計算する。
recordの要素の数が最も多くなるのはどの数を抜いたときか。
複数答えがある場合は最も小さい数を答えよ。
※ recordの要素 : A[i]がrecordであるとは、全てのj
続きを読むhttp://codeforces.com/contest/900/problem/A
N点あり、座標も分かっている。
この点のうち1つの点を削除して、y軸の左側か右側のどちらかにだけ点が存在するように出来るか判定せよ。
この記事は解説 Advent Calendar 2017の12日目の記事です。
自分はここまでACして、以下はACできていない問題である
CodeChef Long Challengeは割と面白いのでみなさんも是非どうぞ!
https://www.codechef.com/DEC17/problems/REDBLUE
N個の赤点とM個の青点がある2D平面がある。
この平面に直線を引いて、赤点と青点の2つに分けたい。
赤点と青点の一部を消さないと分けられない時、最小何個消せば分けられるか。
https://www.codechef.com/DEC17/problems/CHEFUNI
座標(0,0,0)にいる
ここから以下の操作をして最小コストで座標(X,Y,Z)に移動せよ。