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 ...
随机推荐
- Xcode中SVN不能提交.a及其他文件
Xcode默认忽略的.a 文件.所以无法提交到svn服务器,但是很多第三方的库都有.a文件.所以还是必须提交到服务器. 搜索了一下解决方案: http://wpt205.blog.163.com/bl ...
- TiKV 在京东云对象存储元数据管理的实践
京东云对象存储是在 2016 年作为公有云对外公开的,主要特点是可靠.安全.海量.低成本,应用于包括一些常用的业务场景,比如京东内部的京东商城视频/图片云存储,面向京东云公有云外部的开发者的服务,和面 ...
- spring中的Filter使用
https://blog.csdn.net/bibiwannbe/article/details/81302920
- 1.pycharm使用
太白金星的文档: https://www.cnblogs.com/jin-xin/articles/9811379.html 下载专业版,找破解码 一个python文件的开头如果有注视,必须是双引号的 ...
- 记录华为、魅族手机无法打印 Log 日志的问题
http://yifeng.studio/2017/02/26/android-meizu-huawei-not-log/ 实测 MEIZU PRO 6 :打开[设置]中的[开发者选项],页面底部找到 ...
- Vus the Cossack and Strings(Codeforces Round #571 (Div. 2))(大佬的位运算实在是太强了!)
C. Vus the Cossack and Strings Vus the Cossack has two binary strings, that is, strings that consist ...
- Java之同步代码块处理继承Thread类的线程安全问题
package com.atguigu.java; /** *//** * 使用同步代码块解决继承Thread类的方式的线程安全问题 * * 例子:创建三个窗口卖票,总票数为100张.使用继承Thre ...
- Codeforces 1294B - Collecting Packages
题目大意: 机器人从(0,0)开始,他只能往上'U'或者往右'R'走 坐标系中有着很多包裹,分别在一些点上 机器人需要走过去把这些包裹全部收集起来 问能不能做到 如果能,再输出移动方式,相同移动方式输 ...
- pyinstaller 3.6版本通过pip安装失败的解决办法
本机中原pyinstaller版本为3.5版本,本打算通过 pip install --upgrade pyinstaller进行升级,竟然报错,后面卸载再重新安装也一样报错,没办法看来通过pip是暂 ...
- Win10用Windows照片查看程序(照片查看器)打开图片
以上方法只能一个个添加,也有人说不好使,这里给出一个我写的批处理程序,反正我一直用着很好. ::复制以下内容到记事本: @echo off&cd\&color 0a&cls ...