x?y?n!

Posted on 2026-02-06 18:59  贾普鲁登  阅读(0)  评论(0)    收藏  举报
 F-x?y?n!_2026牛客寒假算法基础集训营2

1
#include <bits/stdc++.h> 2 using namespace std; 3 void solve(int n) 4 { 5 bool x[40],y[40],flag = 0; 6 long long ansx = 0,ansy = 0,pi = 1; 7 int cnt = 0; 8 //异或 二进制位相同为0 不同为1 9 //由举例验证发现所得x与y的异或结果恰好为gcd(x,y) 10 //实验发现二进制下 101-101-101 101-000-000 都可以被101整除 11 while(n) 12 { 13 x[++cnt] = n % 2; // 1->cnt 14 n /= 2; 15 } 16 for(int i = 1;i <= cnt;i++) 17 { 18 if(x[i] == 1) ansx += pi; 19 pi *= 2; 20 } 21 for(int i = 1;i <= cnt;i++) 22 { 23 if(x[i] == 1) 24 { 25 ansx += pi; 26 ansy += pi; 27 } 28 pi *= 2; 29 } 30 cout << ansx << " " << ansy << endl; 31 } 32 int main() 33 { 34 int T,n; 35 cin >> T; 36 while(T--) 37 { 38 cin >> n; 39 solve(n); 40 } 41 }