2019HDU以上の学校第六6641 TDL

私は、題し

  TDL

第二に、分析  

  質問の意味は、$ nの$タイトル会うための式を見つけることです、それは$ -1 $を出力見つけることができません。

  $$ {(F(N、M) - N)}の\ oplus {N} = K $$

  (N、M)F $ためながら= {K} \ oplus {N} $、 - $(N F個(N、M)) - に見えるように変換することができるN $テーブルルックを果たし得る、それらの質量数密度に応じて、それを理解し小さな。

  XORは、キャリーの添加およびので等価であるので、$ F N - M - N- $小さい、$ N- $ $ K $の同等に非常に近いです。

  時間制限カード、非常にリラックスした列挙型の範囲が存在しないので列挙の$ n $、。

三、ACコード

1つの#include <ビット/ STDC ++ H>
 2  
3  使用して 名前空間STDを、
4  の#defineっ長い長い
 5  の#define MIN(A、B)((A)>(B)?(B):( A))
 6  の#define MAX(A、B)((A)>(B)? (A):( B))
 7  
8  LLのGCD(-1,11,11- b)は
 9  {
 10      リターン Bの== 0A:GCD(B、%のB)。
11  }
 12  
13 LLのF(LL nを、int型M)
 14  {
 15      int型の CNT = 0 16      のために(LL I = N +1 ;; iは++ 17      {
 18          であれば(GCD(I、N)== 1 19          {
 20              CNT ++ 21          }
 22          であれば(CNT ==のM)
 23              リターンI。
24      }
 25  }
 26  
27  のint main()の
 28  {
 29      のint T。
30      のscanf(" %dの"、&T)。
31      一方(T-- 32      {
 33         int型メートル。
34          LLのK、N。
35          のscanf(" %のLLD%dの"、&​​K&M)。
36          のための(N = MAX(1、K - 1000年); N <K + 1000年 ; N ++ 37          {
 38              であれば(F(N、M) - N ==(K ^ n))を
 39                  ブレーク40          }
 41          であれば、(N、K + == 1000 42の              プット(" -1 " )。
43          他の
44              のprintf(" %LLDする\ n " 、N)。
45      }
 46      リターン 0 47 }

 

おすすめ

転載: www.cnblogs.com/dybala21/p/11320596.html