ねえ、法律は見えにくいです
/ * 二部Yフィージビリティ決意、判定機能レーン: 法則を見つけるには、に見出すことができる: yが奇数である Y:レイヤー0 第一層:2Y、2Y + 1 、第2の層の:4Y、4Y + 1,4y + 2,4y +3 第三層:8Y、8Y + 1,8y + 2,8y + 3,8y + 4,8y + 5,8y + 6,8y + 7 ... 、k番目の層:[2 ^ K * Y、 2 + K 2 * Y ^ ^ 1-K]。 Yが偶数である レイヤ0:Y、Y + 1 第一層の:2Y、2Y + 1,2y + 2,2y + 3 4Y、4Y + 1:第2の層の、4Y + 2,4y + 3,4y + 4,4y + 5,4y + 6,4y + 7 層:8Y、8Y + 1,8y + 2,8y + 3,8y + 4,8y + 5、 + 6,8y + 7,8y + 8Y 8,8y + 9,8y + 10,8y 11,8y + + + 13,8y 12,8y 14,8y + 15 + ... k番目の層:[2 ^ K * Y、2 ^ K * Y + 2 ^(K + 1)-1] 、その後、統計を見て 特別な注意二つ別々で割った奇数と偶数の2例の特別なノートのための出発点である * / の#include <ビット/ STDC ++。H> 使用 名前空間ははstd; #defineっ長い長 LL N、K。 パウ(-1,11,11- b)は{LL LL RES = 1 。 一方、(B){ 場合(bは%2)RES = RES * 。 B >> = 1 ; * = ; } 戻りRES。 } (LL Y){判断ちゃう LL和 = 0、K = 0 。 もし(Y%2 == 0){ // 偶数 ながら(POW(2、k)が* Y +パウ(2、K +1) - 1 <= N){ 合計 + =パウ(2、K + 1 )。 K ++ ; } 和 + = MAX(0LL、N-パウ(2、k)が* Y + 1 )。 } 他{ 一方(POW(2、k)が* Y +パウ(2、k)を- 1 <= N){ 合計 + =パウ(2 、k)は、 K ++ ; } 和 + = MAX(0LL、N-パウ(2、k)が* Y + 1)。 } であれば(和> = K)リターン 1 。 リターン 0 ; } int型のmain(){ CIN >> N >> K。 LL L = 0、R =(N- 1)/ 2、中間、ANS1 = 1 。 一方、(L <= R){ ミッド = L + R >> 1 。 もし(裁判官(ミッド* 2 + 1 )) ANS1 =ミッド* 2 + 1、L =ミッド+ 1 ; 他の R =半ば1; } L = 1、R = N / 2 。 LL ANS2 = 1 。 一方、(L <= R){ ミッド = L + R >> 1 。 もし(裁判官(ミッド* 2 )) ANS2 =ミッド* 2、L =ミッド+ 1 ; 他の R =半ば1 。 } COUT << MAX(ANS1、ANS2)<< ' \ n ' 。 }