目次 2 ● A - Yurufuwa Times ● B - RGB Equation ● C - Not Divide Factorial ● D - ×2÷2%22 ● E - A's ugly behavior in the elevator ● F - Range Sum GCD ● G - Exponential Banana Game ● H - Oriented to DAG ● I - A's ugly behavior in the elevator (general) ● J - Yurufuwa Topology ● 各問題FA・AC数 ● writer/tester
B - RGB Equation 問題概要 以下の4つのうち3つ の等式が与えられます。R,G,Bを求めてください。 ① G + B = C ② R + B = M ③ R + G = Y ④ R + G + B = W 解法 具体的な手順はいくつかありますが、連立方程式として解けます。式変形と場合分けを がんばります。 5
B - RGB Equation ・Cがない場合 ① G + B = C ② R + B = M ③ R + G = Y ④ R + G + B = W ④*2: 2R + 2G + 2B = 2W -② : - R - B = -M -③ : - R - G = -Y C = G + B = 2W - M - Y 6 ・Mがない場合 ① G + B = C ② R + B = M ③ R + G = Y ④ R + G + B = W ④*2: 2R + 2G + 2B = 2W -① : - G - B = -C -③ : - R - G = -Y M = R + B = 2W - C - Y
B - RGB Equation ・Yがない場合 ① G + B = C ② R + B = M ③ R + G = Y ④ R + G + B = W ④*2: 2R + 2G + 2B = 2W -① : - G - B = -C -② : - R - B = -M Y = R + G = 2W - C - M 7 ・Wがない場合 ① G + B = C ② R + B = M ③ R + G = Y ④ R + G + B = W ① : G + B = C +② : R + + B = M +③ : R + G = Y (R+G+B)*2 = C + M + Y W = (C+M+Y) / 2
B - RGB Equation C,M,Y,W がすべて求められれば R = W - C G = W - M B = W - Y のように解が求まります 余談 Python には numpy や sympyに食わせると連立一次方程式を解いてくれるモジュール があるのですが、HackerRank には対応してなくて残念でした (><) 8
D - x2÷2/22 問題概要 X = 1 から次の操作を繰り返して 整数N を作ってください。 ● A … X に 2 をかける ● B … X を 2 でわる ● C … X を 22でわった余りで置き換える 作り方が複数ある場合は、最短かつ辞書式順序最小のものを出力してください。 方針 解き方はいろいろ。各 N について地道に調べていけば解けるはず。 13
E - A's ugly behavior in the elevator 問題概要 ● A君は1階からエレベーターに乗り込み、目的階はN階 ● 2階, 3階, …, N - 1 階を目的階とする N - 2 人が乗り込んできた ● A君はいくつか目的階を解除して、できるだけ停車回数を少なくしたい ● ただし x 階が目的階の人が y 階で降りることになった場合、A君に対して y - x のヘイトが向けられる ● このヘイトの総量が H を超えるとアウト ● 途中停車の回数の最小値は? 16
E - A's ugly behavior in the elevator 方針 ● f(i) := (i 回途中停車したときのA君に向けられるヘイトの総和の最小値) とおくと、f は i に関して単調減少関数 ● ゆえに f(i) <= H なる i の最大値を二分探索で求めてやれば良い ● あとは f(i) を高速に計算する方法を考えれば良い 17
F - Range Sum GCD 考察② Aの累積和配列 S (S0=0, Si = A1+A2+...+Ai) を考えると 区間和は Sr -Sl と表せる。 また、Sr - Sl が G の倍数 ⇔ Sr ≡ Sl (mod G) なので、 S を G でわったあまりごとにグループ分けして、 グループごとに差のGCDをすべて取ったものが G になればよい。 22
問題概要 ● A君は1階からエレベーターに乗り込み、目的階はN階 ● A1 階, A2 階, …, AM 階を目的階とする M 人が乗り込んできた ● A君はいくつか目的階の解除して、できるだけ停車回数を少なくしたい ● ただし x 階が目的階の人が y 階で降りることになった場合、A君に対して y - x のヘイトが向けられる ● このヘイトの総量が H を超えるとアウト ● 途中停車の回数の最小値は?
各問題のFA・AC数 51 問題 オンサイトFA オンラインFA AC数 A - Yurufuwa Times hamath(00:43) sayakaamemiyag(00:40) 59 B - RGB Equation noko_(02:44) 59 C - Not Divide Factorial n_fuppy(03:23) 53 D - ×2÷2%22 KKT89(18:04) heno239(17:25) 54 E - A's ugly behavior in the elevator noko_(18:16) 37 F - Range Sum GCD primenumberzz(12:52) 30 G - Exponential Banana Game ytqm3(31:54) 17 H - Oriented to DAG noko_(1:08:06) sayakaamemiyag(1:06:04) 7 I - A's ugly behavior in the elevator (general) heno239(1:36:11) 2 J - Yurufuwa Topology heno239(2:16:00) 1 ※オンラインFAはオンサイトより速かった場合のみ表記しております。
writer/tester 52 問題 writer tester A - Yurufuwa Times momohara prd_xxx B - RGB Equation prd_xxx dokin C - Not Divide Factorial ayaoni tempura0224 D - ×2÷2%22 dokin momohara E - A's ugly behavior in the elevator ayaoni prd_xxx F - Range Sum GCD tempura0224 G - Exponential Banana Game prd_xxx dokin H - Oriented to DAG ayaoni I - A's ugly behavior in the elevator (general) Tallfall(原案: ayaoni) ayaoni J - Yurufuwa Topology dokin ayaoni