はまやんはまやんはまやん

hamayanhamayan's blog

2017-01-01から1年間の記事一覧

競技プログラミングにおける多倍長整数問題まとめ

多倍長整数 64ビットを越える整数を扱いたい場合はどうするか1. 他の解法を考える 答えが多倍長整数でもない限り、多倍長整数を使わない解法があったりするのでそれを考える 答えが64ビット越えるアレな問題もある(ECR34) 2. 多倍長整数に対応した言語を使う…

Remove Extra One [Codeforces Round #450 C]

http://codeforces.com/contest/900/problem/CN個の[1,N]からなる順列Pがある。 この順列から1つの数を抜いて、recordの要素の数を計算する。 recordの要素の数が最も多くなるのはどの数を抜いたときか。 複数答えがある場合は最も小さい数を答えよ。※ recor…

Position in Fraction [Codeforces Round #450 B]

http://codeforces.com/contest/900/problem/B分数a/bを割った時に小数部分に初めて数cが出てくるのは小数点以下第何位か。 もし出てこないなら-1

Find Extra One [Codeforces Round #450 A]

http://codeforces.com/contest/900/problem/AN点あり、座標も分かっている。 この点のうち1つの点を削除して、y軸の左側か右側のどちらかにだけ点が存在するように出来るか判定せよ。

CodeChef December Challenge 2017の解説と感想

この記事は解説 Advent Calendar 2017の12日目の記事です。 CodeChef December Challenge 2017 CodeChefは月1でLong Challengeという大会をやっている 期間は10日間ぐらい 10問出題され、うち1問はマラソン問題 難易度順にはなっていないが、解いた人数でソ…

Red and blue points [CodeChef December Challenge 2017 G]

https://www.codechef.com/DEC17/problems/REDBLUEN個の赤点とM個の青点がある2D平面がある。 この平面に直線を引いて、赤点と青点の2つに分けたい。 赤点と青点の一部を消さないと分けられない時、最小何個消せば分けられるか。

Chef and Universe [CodeChef December Challenge 2017 F]

https://www.codechef.com/DEC17/problems/CHEFUNI座標(0,0,0)にいる ここから以下の操作をして最小コストで座標(X,Y,Z)に移動せよ。 コストAで、x,y,z座標のどれか1つをインクリメントする コストBで、x,y,z座標のどれか2つをインクリメントする コストCで…

Chef And Easy Xor Queries [CodeChef December Challenge 2017 E]

https://www.codechef.com/DEC17/problems/CHEFEXQ長さNの配列Aがある。 以下のクエリを処理する。 クエリ1 i番目をxに更新する。 クエリ2 j≦iで[1,j]が"magical subarray"である個数を答える magical subarray : xor和がKである

Chef and Hamming Distance of arrays [CodeChef December Challenge 2017 D]

https://www.codechef.com/DEC17/problems/CHEFHAMN個の配列Aがある。 この配列は同じ数が3つ以上は現れない。 この配列を並び替えて配列Bを作る。 AとBのハミング距離が最大となる配列Bの答えよ。 ハミング距離:= A[i] != B[i]となるiの個数

Total Diamonds [CodeChef December Challenge 2017 C]

https://www.codechef.com/DEC17/problems/VK18 T個の以下のクエリに答える。 N*Nの部屋がある。 x座標もy座標も1-indexedとすると、部屋番号はx座標とy座標の和となる。 部屋にはダイアがあり、その数は部屋番号を位毎に別々の数と考え、abs(偶数の数の総和…

Penalty Shoot-out [CodeChef December Challenge 2017 B]

https://www.codechef.com/DEC17/problems/CPLAY AチームとBチームがPK戦をする。 以下のルールで進めていく AとBが交互にPKをする AがPKをして、BがPKをするのを1セットとする 最初の5セット 普通にPKをする 5セットを終えて、勝利数が多いほうが勝ちとなる…

Chef And his Cake [CodeChef December Challenge 2017 A]

https://www.codechef.com/DEC17/problems/GIT01 RとGからなる横M,縦Nの盤面が与えられる。 RをGにする時はコスト5かかり、GをRにするにはコスト3かかる。 RとGの市松模様にするための最小コストは?

Midpoint Erase [yukicoder No.601]

https://yukicoder.me/problems/no/601

Not so Diverse [AtCoder Regular Contest 086 C]

https://beta.atcoder.jp/contests/arc086/tasks/arc086_a

Noelちゃんと星々 [yukicoder No.609]

https://yukicoder.me/problems/no/609

すぬけそだて――ごはん―― [COLOCON -Colopl programming contest 2018- C]

https://colopl2018-qual.contest.atcoder.jp/tasks/colopl2018_qual_c

すぬけそだて――チュートリアル―― [COLOCON -Colopl programming contest 2018- B]

https://colopl2018-qual.contest.atcoder.jp/tasks/colopl2018_qual_b

すぬけそだて――登録―― [COLOCON -Colopl programming contest 2018- A]

https://colopl2018-qual.contest.atcoder.jp/tasks/colopl2018_qual_a

セグメントツリーにセグメントツリーを乗せる手法(2Dセグメントツリー)

この記事はCompetitive Programming Advent Calendar 2017の9日目の記事です。 セグメントツリーにセグメントツリーを乗せる?と何が出来るのか 端的に言うと2Dセグメントツリーが構成できる 一部の2Dセグメントツリーをよりメモリ効率良く作れるというだけ …

開通777年記念 [yukicoder No.607]

https://yukicoder.me/problems/no/607

Card Groups [CSAcademy #60 D]

https://csacademy.com/contest/round-60/task/card-groups/N枚のカードがある。 i番目のカードは赤面にA[i], 青面にB[i]が書かれている。 N枚のカードをそれぞれ赤・青にした時に、赤の数の合計と青の数の合計を同じにしたい。 もし幾つか、組合せがある場…

Digit Permutation [CSAcademy #60 C]

https://csacademy.com/contest/round-60/task/digit-permutation/N個の数がある。 それぞれK進数でM桁である。 ここで0~(K-1)の順列pを用意する。 全ての数の全ての桁の数を順列pによって置換して、以下の条件をみたすようにせよ。 0から始まる数ではない …

Two Elevators [CSAcademy #60 B]

https://csacademy.com/contest/round-60/task/two-elevators/N階建ての建物に2つのエレベーターがある。 i番目のエレベーターは最初E[i]階にいる。 各エレベーターは1階に下ろすかN階まで上げるかの2択を選択できる。 N人がエレベーターを待っている。 i番…

Grade System [CSAcademy #60 A]

https://csacademy.com/contest/round-60/task/grade-system/N個の配列がある。 この配列から最小の数と最大の数を1つずつ取り除く。 残ったN-2個の平均を答えよ。 なお、平均はその平均以下の最大の整数で答えよ。

Recording [AtCoder Beginner Contest 080 D]

https://beta.atcoder.jp/contests/abc080/tasks/abc080_d

Car Show [HackerRank 101 Hack 52 C]

https://www.hackerrank.com/contests/101hack52/challenges/car-showN個の配列がある。 Q個のクエリに答える。 「[L[i],R[i]]の連続部分列のうち、全ての数がdistinctであるものは何通りあるか」

Construct the Array [HackerRank 101 Hack 52 B]

https://www.hackerrank.com/contests/101hack52/challenges/construct-the-arrayN個の数列を構成する。 各要素には1~Kを入れられる。 最初の要素は1, 最後の要素はXである。 他の要素を隣り合う要素が同じ数にならないように埋めていく。 何通りの埋め方が…

Number Groups [HackerRank 101 Hack 52 A]

https://www.hackerrank.com/contests/101hack52/challenges/number-groups1,3,5,7,9,11,...の奇数からなる数列がある。 これを(1),(3,5),(7,9,11),...のように1個,2個,3個,...と群数列として分ける。 第k群の数列の総和を求めよ。

Shopping Street [AtCoder Beginner Contest 080 C]

https://beta.atcoder.jp/contests/abc080/tasks/abc080_cN個の店があり、時間帯1~10について営業しているか与えられる。 F[i][j] := i番目の店で時間帯jに営業しているか(=0:してない, =1:してる) この場合に自分の店を時間帯1~10で営業させるかどうかを…

Harshad Number [AtCoder Beginner Contest 080 B]

https://beta.atcoder.jp/contests/abc080/tasks/abc080_b