题解:P16438 [XJTUPC 2026] 共同特征

· · 题解

这题还是挺水的,除了证明有点烦其他都还好。

数学推导,证明

我们令 g=\gcd(x,y),则可得 g\mid x,\ g\mid y,令 x=g\times‌ a,\ y=g\times‌ b,满足 \gcd(a,b)=1

原式条件 x\ \text{and}\ y=\gcd(x,y),代入可得

只有当 $g$ 是 $2$ 的幂时,按位与才能提取公因数,两边除以 $g$: $a\ \text{and}\ b=1$。 要使 $y=g\times‌b$ 最小: 1. 取 $b=1$,此时 $a\ \text{and}\ 1=1$ 恒成立; 2. $g$ 取 $x$ 最小的正因数,也就是二进制最低位的 $1$,即为 $x$ 与 $-x$ 执行按位与的结果。 因此可以得到最小正整数解 $y_{\min}$,即 $x$ 与 $-x$ 执行按位与的结果。 ## 代码 ```cpp #include<iostream> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0);//快读 int t; cin>>t; while(t--){ unsigned long long x;//不开longlong见祖宗,防止大数据溢出 cin>>x; cout<<(x&-x)<<"\n";//输出,切记换行 } return 0; } ``` 管理大大求过!