CF-1110C-Meaningless Operations
题意:
输入q,然后输入q个a,对于每个a,找到一个b,使gcd(a ^ b, a & b)最大,输出这个最大的gcd;
思路:
用k表示a二进制最高位的二进制编号,1,2,4,8对应1,2,3,4;
假如a不是 (1 << k) - 1这种形式的,那么总能找到一个b使a ^ b == (1 << k) - 1,而a & b == 0,这个时候gcd一定最大。如果a是 (1 << k) - 1,那么因为b不能为0,所以凑不出 (1 << k) - 1,没办法只能暴力了,因为(1 << k) - 1这样的形式的a也只有24个,所以我们要事先打表,否则应该会超时
打表代码:
#include "bits/stdc++.h"
using namespace std;
int main() {
for (int i = ; i <= ( << ) - ; i = i << | ) {
int max_gcd = ;
for (int j = ; j < i; j++) {
max_gcd = max(max_gcd, __gcd(i ^ j, i & j));
}
printf("mp[%d] = %d;\n", i, max_gcd);
}
return ;
}
提交代码:
C - Meaningless Operations | GNU C++11 | Accepted | 30 ms | 0 KB |
#include "bits/stdc++.h"
using namespace std;
map<int, int> mp;
int main() {
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
mp[] = ;
int t, n;
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
if (mp.count(n)) {
printf("%d\n", mp[n]);
continue;
}
int k = ;
while (n) {
k++;
n >>= ;
}
printf("%d\n", ( << k) - );
}
return ;
}
这次比赛得到的教训是打表程序跑出来的结果一定要是可以直接复制粘贴的,比赛的时候前面的题本来就做的不够快,然后当时打表程序不够好,这题还手敲了switch,结果来不及提交了。还是map好,没有引号百分号,用printf输出比较方便。
CF-1110C-Meaningless Operations的更多相关文章
- C. Meaningless Operations Codeforces Global Round 1 异或与运算,思维题
C. Meaningless Operations time limit per test 1 second memory limit per test 256 megabytes input sta ...
- CF - 1110 C Meaningless Operations
题目传送门 题解: 首先根据观察,很容易发的是: x != (1<<k) - 1 时候 答案就是, 将x二进制下再最高位后的0都变成1. 然后就是考虑 x == (1<<k) ...
- CF1110C Meaningless Operations(构造题)
这可能是我打那么多次CF比赛时,做出来的最难的一道题了……而且这题也是个绝世好题…… 题目链接:CF原网 洛谷 题目大意:$q$ 组询问,每次给定 $a$ 询问 $\gcd(a\&b,a\o ...
- CF1110C Meaningless Operations
思路: 令x为满足2x <= a的最大的x.如果a的二进制表示中包含0,则将b构造为(2x+1 - 1) ^ a即可:否则gcd(a ^ b, a & b) = gcd(2x+1 - 1 ...
- 【Codeforces Global Round 1 C】Meaningless Operations
[链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...
- CodeForces Global Round 1
CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...
- CodeForces Contest #1110: Global Round 1
比赛传送门:CF #1110. 比赛记录:点我. 涨了挺多分,希望下次还能涨. [A]Parity 题意简述: 问 \(k\) 位 \(b\) 进制数 \(\overline{a_1a_2\cdots ...
- Codeforces Global Round 1 (A-E题解)
Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...
- CF-1110 (2019/02/08)
CF-1110 A. Parity 快速幂的思想,考虑最后一位即可 #include <bits/stdc++.h> using namespace std; typedef long l ...
随机推荐
- PHP的isset()函数 一般用来检测变量是否设置
PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...
- dotnet core 链接mongodb
导入命名空间 using MongoDB.Bson; using MongoDB.Driver; 测试示例: var client = new MongoClient("mongodb:// ...
- PIL对象和numpy三维数组的互相转换
#https://stackoverflow.com/questions/384759/how-to-convert-a-pil-image-into-a-numpy-array from PIL i ...
- Servlet&JSP复习笔记 03
1.Servlet的声明周期 容器如何创建Servlet对象,如何为Servlet对象分配资源,如何调用Servlet对象的方法来处理请求,以及如何销毁Servlet对象的过程. a.实例化 容器调用 ...
- python-day2爬虫基础之爬虫基本架构
今天主要学习了爬虫的基本架构,下边做一下总结: 1.首先要有一个爬虫调度端,来启动爬虫.停止爬虫或者是监视爬虫的运行情况,在爬虫程序中有三个模块,首先是URL管理器来对将要爬取的URL以及爬取过的UR ...
- Codeforces Round #563 (Div. 2) 划水记
网太卡只好做划水选手,只做EF. E 很容易发现第一个数是2k或者是3*2k-1,因为消去因子次数要尽可能多,然后可以直接dp一发转移还剩几个2/3即可,写起来有些麻烦 #include<bit ...
- ILSVRC2012下载
http://www.image-net.org/challenges/LSVRC/2012/nnoupb/ILSVRC2012_img_test.tarhttp://www.image-net.or ...
- spring boot pom demo
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 吴裕雄--天生自然 pythonTensorFlow自然语言处理:文本数据预处理--生成训练文件
import sys import codecs # 1. 参数设置 MODE = "PTB_TRAIN" # 将MODE设置为"PTB_TRAIN", &qu ...
- C#.NET中的ToString()数字格式化
数字格式字符串-----货币-----.ToString("C");.ToString("c");例 2.5.ToString("c") - ...