CF1110C Meaningless Operations
2024-08-23 15:51:07
思路:
令x为满足2x <= a的最大的x。如果a的二进制表示中包含0,则将b构造为(2x+1 - 1) ^ a即可;否则gcd(a ^ b, a & b) = gcd(2x+1 - 1 - b, b) = gcd(2x+1 - 1, b),要令此式最大,b应为(2x+1 - 1)的最大非平凡因子。
实现:
#include <bits/stdc++.h>
using namespace std; inline int max_fac(int x)
{
for (int i = ; i * i <= x; i++)
{
if (x % i == ) return x / i;
}
return ;
} int main()
{
int q, x;
set<int> st;
for (int i = ; i <= ; i++) st.insert(( << i) - );
while (cin >> q)
{
for (int i = ; i < q; i++)
{
cin >> x;
if (st.count(x))
{
cout << max_fac(x) << endl;
}
else
{
int tmp = , y = x;
while (y) { y >>= ; tmp++; }
cout << ( << tmp) - << endl;
}
}
}
return ;
}
最新文章
- 关于js的回调函数的一点看法
- golang开发环境(2016.9.16)
- 【BZOJ-3306】树 线段树 + DFS序
- 如何从innodb的数据字典里恢复表结构
- opencv 61篇
- 算法库:OpenCV3编译配置
- Native App执行JS
- JAVA WEB中如何让数据库连接对开发人员完全透明?
- MariaDB10.2.X-新特性1-支持分析函数
- UVALive 6665	Dragonas Cruller
- 一个人的旅行(Dijkstra算法)
- Light OJ 1008
- Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition
- Sklearn中二分类问题的交叉熵计算
- Manacher (最长回文序列)
- typecho开启pjax,ajax,无刷新
- WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
- MySQL的各种join
- C# Timer自带定时器
- ant design pro (十三)advanced 错误处理