C. Meaningless Operations Codeforces Global Round 1 异或与运算,思维题
1 second
256 megabytes
standard input
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:
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).
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.
For each integer, print the answer in the same order as the integers are given in input.
3
2
3
5
3
1
7
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 异或与运算,思维题的更多相关文章
- CodeForces Global Round 1
CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...
- Codeforces Global Round 1 (A-E题解)
Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...
- Codeforces Global Round 1 (CF1110) (未完结,只有 A-F)
Codeforces Global Round 1 (CF1110) 继续补题.因为看见同学打了这场,而且涨分还不错,所以觉得这套题目可能会比较有意思. 因为下午要开学了,所以恐怕暂时不能把这套题目补 ...
- Codeforces Global Round 1 - D. Jongmah(动态规划)
Problem Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...
- Codeforces Global Round 2 题解
Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...
- Codeforces Global Round 3
Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...
- 【手抖康复训练1 】Codeforces Global Round 6
[手抖康复训练1 ]Codeforces Global Round 6 总结:不想复习随意打的一场,比赛开始就是熟悉的N分钟进不去时间,2333,太久没写题的后果就是:A 题手抖过不了样例 B题秒出思 ...
- Codeforces Global Round 11 个人题解(B题)
Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...
- 【Codeforces Global Round 1 C】Meaningless Operations
[链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...
随机推荐
- Sql Server 数据库表结构,存储过程,视图比较脚本
顶级干货 用来比较两个数据库之间 表结构,存储过程及视图差异的存储过程,直接复制对应的存储过程,无需改动,直接在数据库中执行(传递要比较的数据库参数)即可 1.两个数据库之间存储过程及视图差异比较的存 ...
- lambda List实现某列去重的解决方案采用扩展方法
public class CommonEqualityComparer<T, V> : IEqualityComparer<T> { private Func<T, V& ...
- Oracle高效分页查询(转)
page --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROWNUM AS rowno, t.* -- FROM DON ...
- [android] listview入门
Listview组件非常重要,4分之一的时间都是在搞这个,还是通过上一节的数据库,写个for循环,插入50条数据. 先使用笨方法显示数据,根布局LinearLayout 定义一个id,在activit ...
- [android] xml文件的序列化
生成xml文件,模拟备份短信,创建短信的业务bean,创建一个domain的包放业务bean,这个业务bean里面,定义成员属性,生成get set方法,生成有参和无参的构造方法. 生成随机数,实例化 ...
- 【Java】Properties文件的解析
public abstract class ReadProperties { public ReadProperties() {} /** * 回调函数,由调用者处理 * @param key * @ ...
- MyBatis:事务回滚
事务的隔离级别:DEFAULT.READ_UNCOMMITED.READ_COMMITTED.REPEATABLE_READ.SERIALIZABLE 事务的传播行为:REQUIRED.SUPPORT ...
- 老王带你走过 Kafka 入门教程
Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发. Linkedin于2010年贡献 ...
- could not read Username for 'https://github.com': No error
用idea往github上push代码的时候,突然的不能用了. 报could not read Username for 'https://github.com': No error错误. 原因不明. ...
- 3款网页jQuery抽奖实例演示
实例演示 实例演示 实例演示