uva 4683
这题的意思是给一个集合,最多有12个元素。找出只能被集合中一个仅且一个数整除的第n个数。(n <= 10^15)。
我用容斥原理做的。先把能被每个数整除的元素个数累加,当然会有重复的。若某个数由集合中两个数组成,那么要减去所有这个数的整数倍,而且要减两次,因为他是两个数的公约数,而当某个数是其中三个数的公约数,那他一定也是两个数的公约数,这样就多减了c[k][2]个,就得加上。以此类推。
要求第n个数,题目说答案最大是10^15,我以10^15为界限进行二分,对于[1,m]内若符合条件的数是res个,若res >= n,那么high = mid-1,否则low = mid+1。
但是我的代码没过,无限TLE。。代码先贴这里,希望路过的大神给予指点。
#include
#include
#include