Leetcode-5198醜い番号III(丑数III)

1つ の#define _for(iは、B)(I =(A)がINT;方には<Bと、I ++)は
 2  の#define _rep(iは、b)のための式(I =(A)がINT、I> B、I - )
 3  の#define INF 0x3f3f3f3f
 4  の#define MOD十億七
 5  の#define PBの一back
 6  の#define MAXN 100003
 7のtypedef 長い LL。
8  クラスソリューション
 9  {
 10      公共11          LL KK。
12          LLのAA;
13の         LLのBB。
14          LLのCC。
15         AB LL;
16          LL BC;
17          LLのCA;
18          LL ABC。
19          LLのGCD(LLのX、LLのY)
 20          {
 21              リターン Y GCD(Y、Xの%の?Y):X。
22          }
 23          LLのLCM(長い 長い長い 長いB)
 24          {
 25              リターン A * B / GCD(A、B)。
26          }
 27          BOOL C(LL D)
 28          {
 29              リターン(D / A-A + D / BB + D / CC-D /(A-B)-D /(CA)-D /(BC)+ D /(ABC)) > =KK;
30          }
 31          LL)(解決
 32          {
 33              LL LB = 0、UB = 2000000001 34              一方(LB < UB)
 35              {
 36                  LLミッド= LB +(UB-LB)/ 2 37                  もし(C(MID))UB = ミッド。
38                  ポンド=ミッド+ 1 ;
39              }
 40              リターンポンド;
41          }
 42          INT nthUglyNumber(INT N、INTint型 B、INT c)の
 43          {
 44              KK = ; nは
45              AA = 46の              BB =のB。
47              = CC C。
48              AB = LCM(a、b)は、
49              、BC = LCM(B、C)。
50              CA = LCM(C);
51              ABC = LCM(A-B、C)。
52              リターン)(解きます。
53          }
 54 }。

 

おすすめ

転載: www.cnblogs.com/Asurudo/p/11566946.html