关于此题[AGC018A] Getting Difference 裴蜀定理的一些总结
- 题目大意
给定一个序列和\(k\),每次可以选定序列中两个数,将这两个数的差的绝对值加入序列中,问\(k\)能否出现在序列中
- 思路
问的其实就是\(k\)能否被该序列中这\(n\)个数线性表示,问题是如何实现。
裴蜀定理:对于两个整数\(a\), \(b\) ,存在\(x\),\(y\)使得\(ax+by=gcd(a,b)\),且\(gcd(a,b)\)为此线性组合能表示的最小值
而此定理推广到n个数同样适用,即:
\(a_{1}x_{1}+a_{2}x_{2}+...+a_{n}x_{n} = gcd(a_{1},a_{2},...,a_{n})\)
于是我们就知道,k如果能出现在新序列中,即能被原序列线性表示,那么它一定是\(gcd(a_{1},a_{2},...,a_{n})\)的倍数。
于是问一个数能否被n个数线性表示问题可以在\(O(n)\)时间内解决

浙公网安备 33010602011771号