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\);反之,一定不行。

posted @ 2023-11-29 17:56  ShawyYum  阅读(33)  评论(0)    收藏  举报