kwm_t

kwm_tのメモ

第二回日本最強プログラマー学生選手権

■A - Competition
(y * z - 1)/x

■B - Xor of Sequences
どうにでも

■C - Max GCD 2
区間[A,B]の間にその倍数のものが2つ以上あればいい

■D - Nowhere P
(p-1)*(p-2)^(n-1)
繰り返し二乗法

■E - Level K Palindrome
どことどこが同じになっていないといけないかを
unionfindを使って求める
最後に残るレベル0の回分は回文であってはいけないので
最善と次善を保持しておき、レベル0が回分になるようならば一つ次善にする必要がある

■F - Max Matrix
クエリを先読みし、座圧してセグ木して差分計算
セグ木は{sum,count}みたいな数で持つと良い。

■G - Spanning Tree
unionfindをしてA[i][j] = 1の頂点をまとめること
既に閉路ができてたらNGなことなどまでは簡単に思いつく。
ここからは自由辺をどの組み合わせで選ぶのかを考える必要がある。
行列木定理という答えに直結する定理が存在するので知っていれば貼るだけ。
知らないと無理


立ち回りを間違えた。
Fを先に解くべきだったし、Eも細かいミスだけだったので解けるべき

決勝内訳
東大25
京大8
阪大4
東工大3
東北大3
慶応2
早稲田1
福井1
横浜国立大学1