C. Meaningless Operations
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Can the greatest common divisor and bitwise operations have anything in common? It is time to answer this question.

Suppose you are given a positive integer aa. You want to choose some integer bb from 11 to a−1a−1 inclusive in such a way that the greatest common divisor (GCD) of integers a⊕ba⊕b and a&ba&b is as large as possible. In other words, you'd like to compute the following function:

f(a)=max0<b<agcd(a⊕b,a&b).f(a)=max0<b<agcd(a⊕b,a&b).

Here ⊕⊕ denotes the bitwise XOR operation, and && denotes the bitwise AND operation.

The greatest common divisor of two integers xx and yy is the largest integer gg such that both xx and yy are divided by gg without remainder.

You are given qq integers a1,a2,…,aqa1,a2,…,aq. For each of these integers compute the largest possible value of the greatest common divisor (when bb is chosen optimally).

Input

The first line contains an integer qq (1≤q≤1031≤q≤103) — the number of integers you need to compute the answer for.

After that qq integers are given, one per line: a1,a2,…,aqa1,a2,…,aq (2≤ai≤225−12≤ai≤225−1) — the integers you need to compute the answer for.

Output

For each integer, print the answer in the same order as the integers are given in input.

Example
input

Copy
3
2
3
5
output

Copy
3
1
7
Note

For the first integer the optimal choice is b=1b=1, then a⊕b=3a⊕b=3, a&b=0a&b=0, and the greatest common divisor of 33 and 00 is 33.

For the second integer one optimal choice is b=2b=2, then a⊕b=1a⊕b=1, a&b=2a&b=2, and the greatest common divisor of 11 and 22 is 11.

For the third integer the optimal choice is b=2b=2, then a⊕b=7a⊕b=7, a&b=0a&b=0, and the greatest common divisor of 77 and 00 is 77.

这个题目有1500的分数,我觉得偏高了,这个题目比较简单,不过第一眼看上去可能会觉得还比较难,但是仔细思考一下异或运算和与运算就会发现那么一点点的规律

就是与和异或运算是相反的,再加上第一个样例告诉你,0和3 的最大公约数是3,就会发现一点,如果一个数转化成二进制,且不是每一个位置都是1,那么就可以变成全部是1的数和0求最大公约数,这个肯定是最大的,其实就是你要让一个数是0,另一个数最大。

如果全是1,你就会发现这个数肯定是个奇数,如果他可以分成奇数倍,那一个最大公约数肯定是一倍。这个可以自己好好想清楚。

#include<iostream>
#include<cstdio>
#include<cstring>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 100; int main()
{
int q;
cin >> q;
while(q--)
{
ll n, num=0,ans=0;
int flag = 0;
cin >> n;
while(n)
{
if (n % 2 == 0) flag = 1;
n >>= 1;
num++;
}
for (int i = 1; i <= num; i++)
{
ll len = 1;
for (int j = 1; j < i; j++)
{
len *= 2;
}
ans += len;
}
if(flag) printf("%lld\n", ans);
else
{
flag = 0;
for(int i=3;i<10000;i+=2)
{
if(ans%i==0)
{
printf("%lld\n", ans / i);
flag = 1;
break;
}
}
if (!flag) printf("1\n");
}
}
return 0;
}

  

C. Meaningless Operations Codeforces Global Round 1 异或与运算,思维题的更多相关文章

  1. CodeForces Global Round 1

    CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...

  2. Codeforces Global Round 1 (A-E题解)

    Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...

  3. Codeforces Global Round 1 (CF1110) (未完结,只有 A-F)

    Codeforces Global Round 1 (CF1110) 继续补题.因为看见同学打了这场,而且涨分还不错,所以觉得这套题目可能会比较有意思. 因为下午要开学了,所以恐怕暂时不能把这套题目补 ...

  4. Codeforces Global Round 1 - D. Jongmah(动态规划)

    Problem   Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...

  5. Codeforces Global Round 2 题解

    Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...

  6. Codeforces Global Round 3

    Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...

  7. 【手抖康复训练1 】Codeforces Global Round 6

    [手抖康复训练1 ]Codeforces Global Round 6 总结:不想复习随意打的一场,比赛开始就是熟悉的N分钟进不去时间,2333,太久没写题的后果就是:A 题手抖过不了样例 B题秒出思 ...

  8. Codeforces Global Round 11 个人题解(B题)

    Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...

  9. 【Codeforces Global Round 1 C】Meaningless Operations

    [链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...

随机推荐

  1. 结构型---装饰者模式(Decorator Pattern)

    定义 装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰者模式相比生成子类可以更灵活地增加功能. Component抽象构件           Component是一个接口或者是抽象 ...

  2. GlashFish部署的程序时好时坏,无法访问时报404

    1.问题 glashfile部署的程序时好时坏, 有时部署后访问直接就报404错误 查看log, log如下[2017/09/26 18:22:54.820][               ] ERR ...

  3. webpack-dev-server不是内部或外部命令

    参考:https://segmentfault.com/q/1010000006939078 错误报告:webpack-dev-server不是内部或外部命令 错误原因: 当执行命令: npm run ...

  4. 如何去掉C#字符串中的所有空格

    字符串行数Trim()可以去掉字符串前后的空格,如:  C# Code  string myString = " this is a test "; Console.WriteLi ...

  5. 一、Composer下载安装

    1.composer下载 英文网站:https://getcomposer.org/ 中文镜像:https://www.phpcomposer.com/ 2.composer安装 • win下安装图文 ...

  6. vue过滤器用法实例分析

    过滤器: vue提供过滤器: capitalize uppercase currency.... ? 1 2 3 <div id="box">     {{msg|cu ...

  7. vue的data的数据进行指定赋值,用于筛选条件的清空,或者管理系统添加成功后给部分数据赋值为空

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 04-HTML-图片标签

    <html> <head>  <title>图片标签学习</title>  <meta charset="utf-8"/> ...

  9. css不受高度限制实现文本超出隐藏并以省略号结束

    文本超出省略号显示代码: overflow: hidden; text-overflow:ellipsis; white-space: nowrap;width: 100px; /*宽度做好限制*/ ...

  10. 适用于VS C++环境的注释代码段,可以让你的代码被使用时有高可读性的注释

    编码时,在对高级语言(C#/VB etc)函数的访问时,经常会有很明确的函数功能提示,参数提示,与返回值提示.微软的VisualStudio C++集成开发环境同样有这样的功能,只是常见开源的代码很少 ...