Problem 4580. ABCDEF
サークルで久々にSPOJの問題を解いたので解法をメモっておく.
問題
https://www.spoj.pl/problems/ABCDEF/
You are given a set S of integers between -30000 and 30000 (inclusive).
Find the total number of sextuples that satisfy:
異なる整数の集合Sが与えられるので,それに対して上式を満たすようなa,b,c,d,e,f∈Sの組はいくつあるか答えよ,という問題.
集合Sの大きさはを満たす.
解法
以下解法書くので解法見ずに解きたい人とか注意.
まず全探索をするとかかって時間内に終わらない.
そこで,上の数式を同値変形して,
のようにする.
このとき左辺のとりうる値の重複を込めた集合をとって,ソートする.
すると(d,e,f)の値を定めたとき等号が成り立つような(a,b,c)の組の個数は,右辺の値でTを2分探索すれば分かることになる.
(ここで探索するときにであることに気をつける.)
よって,の計算量で解を求めることができる.