CF1848C Vika and Price Tags 题解
题意:

思路:
对于每个数对 $ ( $ \(a_i\) ,\(b_i\)$) $ ,其所进行的操作本质上为更相减损术,当 $ a_i = 0 $ 时, $ b_i = $ $ gcd $ $ ( $ $ a_i $ , $ b_i $ $ ) $ ,所以每个 $ a_i $ 一定可以变为 $ 0 $ ,而这道题求解的是所有 $ a_i $ 能否同时变为 $ 0 $ 。
考虑任意一个数对 $ (a_i,b_i) $ ,设其进行更相减损术的操作次数为 $ c_i $ ,设 $ gcd $ $ ( $ $ a_i $ , $ b_i $ $ ) $ 为 $ gcd_i $ 。当进行 $ c_i $ 次操作后,数对 $ ( $ $ a_i $ , $ b_i $ $ ) $ 的取值为 $ ( $ $ 0 $ , $ gcd_i $ $ ) $ ,若再进行若干次操作,状态变化如下:
\((\)\(0\),\(gcd_i\)) \(\to\) \((\)\(gcd_i\),\(gcd_i\)\()\) \(\to\) \((\)\(gcd_i\),\(0\)\()\) \(\to\) \((\)\(0\),\(gcd_i\)\()\) \(\to\) \(...\)
观察,经过\(3\)次操作后,数对\((\)\(a_i\),\(b_i\)\()\)的取值又恢复成了\((\)\(0\),\(gcd_i\)\()\)。因此,只要满足\(c_1\) \(\equiv\) \(c_2\) \(\equiv\) \(...\) \(\equiv\) \(c_n\)\((\)\(mod\) \(3\)\()\),所有\(a_i\)就能同时变为\(0\)。
如果暴力求解\(c_i\),每次求解\(c_i\)的时间复杂度为\(O\)\((\)\(max\)\((\)\(a_i\),\(b_i\)\()\)\()\),显然会超时。
由于数对\((\)\(\frac {a_i} {gcd_i}\),\(\frac {b_i} {gcd_i}\)\()\)进行更相减损术的操作次数也为\(c_i\),并且进行\(c_i\)次操作后,数对\((\)\(\frac {a_i} {gcd_i}\),\(\frac {b_i} {gcd_i}\)\()\)的取值也为\((\)\(0\),\(gcd_i\)\()\)。那么令\(a_i\) \(=\) \(a_i\) \(/\) \(gcd_i\),\(b_i\) \(=\) \(b_i\) \(/\) \(gcd_i\),此时\(a_i\)与\(b_i\)互质,数对\((\)\(a_i\),\(b_i\)\()\)的取值的奇偶性有以下三种:\((\)偶,奇\()\)、\((\)奇,奇\()\)、\((\)奇,偶\()\)。
若此时数对\((\)\(a_i\),\(b_i\)\()\)的取值为\((\)\(2k\),\(2k + 2x + 1\)\()\)\((\)此处举例情况奇偶性为\((\)偶,奇\()\),其余情况同理\()\),对其进行若干次操作,状态变化如下:
\((\)\(2k\),\(2k\) \(+\) \(2x\) \(+\) \(1\)\()\) \(\to\) \((\)\(2k\) \(+\) \(2x\) \(+\) \(1\),\(2x\) \(+\) \(1\)) \(\to\) \((\)\(2x\) \(+\) \(1\),\(2k\)\()\) \(\to\) \((\)\(2k\),\(|\) \(2k\) \(-\) \(2x\) \(-\) \(1\) \(|\)\()\) \(\to\) \(...\)
观察,经过\(3\)次操作后,数对\((\)\(a_i\),\(b_i\)\()\)的取值的奇偶性的变化为:\((\)偶,奇\()\) \(\to\) \((\)奇,奇\()\) \(\to\) \((\)奇,偶\()\) \(\to\) \((\)偶,奇\()\)。由于数对\((\)\(a_i\),\(b_i\)\()\)的取值为\((\)\(0\),\(gcd_i\)\()\)时的奇偶性为\((\)偶,奇\()\),因此,当且仅当所有数对\((\)\(a_i\),\(b_i\)\()\)的奇偶性相同时\((\)\(a_i\) \(=\) \(a_i\) \(/\) \(gcd_i\),\(b_i\) \(=\) \(b_i\) \(/\) \(gcd_i\)),一定可以使初始情况下\(a_i\)在若干次操作后同时为\(0\);反之,一定不行。
浙公网安备 33010602011771号