能否把样例输出给出,方便验证算法的正确性
下面交流下我的思路
首先我们吧问题转化,变成你一开始有一个原始数字0,你每次可以从数列a中取出一个给他加上或者减去,求可以到达的最小正整数,如果这个数字等于1,那么就说明a这个序列符合要求
然后我们发现这个加加减减的过程很类似 辗转相除法 ,那么显然对于一个数列a 如果其中有两个数字互质,那这个数列就一定符合要求,同样的,如果没有两个数字是互质的,那么这个数列就一定不符合要求。
由于 gcd(1,x)=1 所以也就是说a是符合要求的,当且仅当a中所有元素的gcd=1
这样问题就变成了要求一个序列 a ,要求a中的元素都小于等于B,a 中的最后一个元素为B,且a中所有元素的gcd=1,而这个问题显然可以使用莫比乌斯反演解决
复杂度O(B),对于题目给出的数据范围显然可以胜任。