【题解】CF1013B And
题面传送门
解决思路
首先我们可以得出,$ a $ \(\&\) $ x $ \(=\) $ a $ \(\&\) $ x $ \(\&\) $ x $。由此得知,同一个 \(a\) 反复 \(\&\) \(x\) 是没有意义的。所以我们得到,答案仅可能是以下几种情况:
- \(ans = 0\) ,即有相同的数字,不需要操作。
- \(ans = 1\) ,即对于某个 \(a_i\) \(\&\) $ x $ \(=\) \(a_j\),其中 $1 \le i,j\le n $ 且 \(j \ne i\) 。
- \(ans = 2\) ,即对于某两个 \(a_i\) \(\&\) $ x $ \(=\) \(a_j\) \(\&\) $ x $ ,其中 $1 \le i,j\le n $ 且 \(j \ne i\) 。
- \(ans = -1\) ,即对于任意的 \(a_i\) \(\&\) $ x $ \(\ne\) \(a_j\) \(\&\) $ x $ ,其中 $1 \le i,j\le n $ 且 \(j \ne i\) 。
有了这个思路,再看到\(a_i \le 10^5\) ,我们就可以借助桶存下每个 \(a_i\) \(\&\) $ x $ ,然后判断即可。
AC Code
#include<bits/stdc++.h>
using namespace std;
int n,x,a[100005],t[100005],t2[100005],fl;
//t储存a[i]&x,t2用于判重(ans=0的情况)
int main(){
scanf("%d%d",&n,&x);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(t2[a[i]]!=0){
printf("0");
return 0; //ans=0的情况
}
t2[a[i]]++;
if((a[i]&x)!=a[i]) t[a[i]&x]++; //a[i]&x=a[i]的不能计算在内
if(t[a[i]&x]>=2) fl=1; //如果出现过两次,就必有解
}
for(int i=1;i<=n;i++){
if(t[a[i]]>0){
printf("1"); //ans=1的情况
return 0;
}
}
if(fl==1) printf("2"); //有解
else printf("-1"); //无解
return 0;
}
【题解】CF1013B And的更多相关文章
- 题解合集 (update on 11.5)
收录已发布的题解 按发布时间排序. 部分可能与我的其他文章有重复捏 qwq . AtCoder for Chinese: Link ZHOJ: Link 洛谷 \(1\sim 5\) : [题解]CF ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
随机推荐
- DataGridView控件绑定数据之后,置顶操作
一个小小的置顶,就搞了半个小时,还是记录一下吧. 1.第一个问题就是datatable的插入只能是Insert DataRow,但是获取选中的行,都是DataGridViewRow,不能直接转换. 找 ...
- 细数实现全景图VR的几种方式(panorama/cubemap/eac)
Three.js系列: 在元宇宙看电影,享受 VR 视觉盛宴 Three.js系列: 造个海洋球池来学习物理引擎 Three.js系列: 游戏中的第一.三人称视角 Three.js系列: 数实现全景图 ...
- JVM之HotSpot虚拟机是如何发起内存回收的? 转载
1.背景 在上一节中,我们掌握了垃圾收集的一些算法,也弄明白了分代回收的原理, 那么HotSpot虚拟机是如何发起内存回收的? 2.如何找到GC Roots根节点(枚举根节点) 从可达性分析中GC R ...
- KingbaseESV8R6不同隔离级下xmin的区别
背景 sys_stat_activity视图中用两个字段表示: backend_xid表示事务开始需要申请的事务id backend_xmin表示一个事务快照,表示当前数据库中最小的正在运行的事务号, ...
- KingbaseES 数据库删除功能组件
关键字: KingbaseES.卸载.删除功能 一.安装后检查 在安装完成后,可以通过以下几种方式进行安装正确性验证: 1. 查看安装日志,确认没有错误记录; 2. 查看开始菜单: 查看应用程 ...
- 引擎之旅 Chapter.2 线程库
预备知识可参考我整理的博客 Windows编程之线程:https://www.cnblogs.com/ZhuSenlin/p/16662075.html Windows编程之线程同步:https:// ...
- 使用Docker方式部署Gitlab,Gitlab-Runner并使用Gitlab提供的CI/CD功能自动化构建SpringBoot项目
1.Docker安装Gitlab,地址:https://www.cnblogs.com/sanduzxcvbnm/p/13814730.html 2.Docker安装Gitlab-runner,地址: ...
- CMD和Entrypoint命令使用变量的用法
CMD 支持三种格式 CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式: CMD c ...
- JDK19新特性使用详解
前提 JDK19于2022-09-20发布GA版本,本文将会详细介绍JDK19新特性的使用. 新特性列表 新特性列表如下: JPE-405:Record模式(预览功能) JPE-422:JDK移植到L ...
- Redis高并发分布式锁详解
为什么需要分布式锁 1.为了解决Java共享内存模型带来的线程安全问题,我们可以通过加锁来保证资源访问的单一,如JVM内置锁synchronized,类级别的锁ReentrantLock. 2.但是随 ...