女性2115 C Looooops(exgcd)

ああ...

 

トピックリンクします。http://poj.org/problem ID = 2115?

 

(A + S * C)%2 ^ K = B
(A + S * C)≡B(MOD 2 ^ k)と
S *のCm * 2 ^ k = BA
斧+ = Cによって、
問題は、正と負の線形結合の集合、bは、bは負であることは、とにかく、必要ではないが、ある同じであり、この問題はさらにYを必要としません
 
 
ACコード:
1の#include <cstdioを>
 2の#include <iostreamの>
 3  
4  使用して 名前空間STDを、
5  
6インラインボイド exgcd(長い 長い長い 長い B、長い 長い&G、長い ロング・X、長い 長いY){
 7      であれば {G =(B!)。X = 1Y = 0 ;}
 8      そう {exgcd(B、%のB、G、Y、X)。Y - = X *(A / B);}
 9  }
 10  
11  INTメイン(){
 12      長い 長い、B、C、A、B、C、K、G、X、Y。
13      一方(〜のscanf(" %LLD%LLD%LLD%LLD "、&​​A、&B、&C&K)){
 14          であれば(A && B && C && K!!)ブレーク15          A = C。B = 1LL << K。C = B - A。
16          exgcd(A、B、G、X、Y)。
17          もし(C%でのG)のprintf(" FOREVER \ n " );
18          {
 19              C / A = G。B / A = G。
20              のprintf("、(X%のb *表Cの%B + B)%のB)。
21          }
 22      }
 23      リターン 0 24 }
ACコード

 

おすすめ

転載: www.cnblogs.com/New-ljx/p/11515341.html