Codeforces-1682B: AND Sorting

题目传送门:Codeforces-1682B: AND Sorting

题目

题目截图

样例描述

题目大意

  给定一个长度为 nnn 的排列(数值在 [0,n−1][0,n-1][0,n−1] 之间),如果两个数 pi&pj=Xp_i \& p_j = Xpi​&pj​=X,我们可以交换它们,称为 X−交换X-\text{交换}X−交换,如果我们用 X−交换X-\text{交换}X−交换 可以排序整个数组,那么我们称数组为 X−可排序的X-\text{可排序的}X−可排序的。问,对于给定的数组,可排序的最大的 XXX 是多少。

题目解析

  首先,000 的存在保证了最小的值为 X=0X=0X=0,因为我们可以利用 000 来作为中间变量交换其它的两个元素。那么还有没有这样的元素呢,是有的,那就是所有不在正确位置上的所有数的 ANDANDAND 值。首先,这个值一定不超过任何不正确的数,因此一定在排列中,之后,我们知道对 pi&X=X,pj&X=Xp_i \& X=X,p_j \& X=Xpi​&X=X,pj​&X=X,那么我们可以利用 XXX 去置换 pi,pjp_i,p_jpi​,pj​,这样 XXX 就可以起到 000 的作用了,因此,我们直接输出所有不在正确位置上的所有数的 ANDANDAND 值即可。显然,这个数是最大的,若给更大的数,那么有的错序数不能只靠 XXX 进行交换,与题目不符。

Code

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int maxn = 2e5 + 7;
int p[maxn];int main() {int t, n;cin >> t;while(t--) {cin >> n;int ans = -1;for(int i=0; i<n; ++i) {cin >> p[i];if(ans == -1 && p[i] != i) ans = p[i];else if(p[i] != i) ans &= p[i];}cout << max(ans, 0) << endl;}return 0;
}

Codeforces-1682B: AND Sorting 【构造、排序、位运算】相关推荐

  1. CodeForces - 1174D Ehab and the Expected XOR Problem(构造+思维+位运算)

    题目链接:点击查看 题目大意:给出一个 n,再给出一个 x,要求构造一个数列,满足该数列的所有子串的异或和都不等于 0 且都不等于 x,在满足上面的条件下尽可能长 题目分析:因为这个题目最终的目标是需 ...

  2. Codeforces Round #716 (Div. 2) (位运算AND)

    B. AND 0, Sum Big time limit per test2 seconds memory limit per test256 megabytes inputstandard inpu ...

  3. CodeForces - 1451E2 Bitwise Queries (Hard Version)(交互+构造+位运算)

    题目链接:点击查看 题目大意:给出一个长度为 n(n 保证了是 2 的幂次),每个数的范围在 [ 0 , n - 1 ] 的一个数组,现在要求通过有限次操作确定下来这个数组: 询问 a[ i ] xo ...

  4. Dreamoon Likes Sequences CodeForces - 1330D(组合数学+位运算)

    Dreamoon likes sequences very much. So he created a problem about the sequence that you can't find i ...

  5. USACO2.1【bfs,排序,贪心,dfs,位运算】

    前言 开始刷USACO的题了. 正题 刷前必备技能:OI常识,bfs,dfs,位运算,基础贪心,快速排序. T1:城堡 TheCastleThe CastleTheCastle 评测记录: https ...

  6. 第七周 位运算、布隆过滤、LUR和排序

    [TOC] 一.位运算 XOR-异或 ^ x ^ 0 = x x ^ 1s= ~x //1s = ~0 x ^ (~x) = 1s x ^ x = 0 c = a ^ b ==> a ^ c = ...

  7. 【CodeForces 1042B --- Vitamins】DP+位运算

    [CodeForces 1042B --- Vitamins]DP+位运算 题目来源:点击进入[CodeForces 1042B - Vitamins] Description Berland sho ...

  8. 动态规划+BFS+DFS+回溯+红黑树+排序+链表+位运算(B站优质学习资源链接,后续会继续更新)

    动态规划 正月点灯笼(UP主) 个人主页 https://space.bilibili.com/24014925/channel/detail?cid=12580 动态规划第一讲 https://ww ...

  9. leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]

    这里写目录标题 搜索与回溯 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树 ...

  10. 算法笔记(一)位运算、二分、基本递归、排序、基本数据结构

    文章目录 位运算 原码.补码与反码 左移右移`<<` & `>>` 无符号右移 异或运算`^` 位运算常用技巧 取相反数 反转0-1 判断负数与非负数 数组交换两元素位 ...

最新文章

  1. Windows 7 应用程序崩溃恢复
  2. 阿里日均纳税超1.4亿;AI换脸骗过美侦查;日本民众哄抢令和报纸;辟谣教学楼发现大量金矿;上海拨通首个5G通话;这就是今日大新闻...
  3. 前端学习(1350):用户的增删改查操作7增删改查
  4. Visual Studio启用64位 IIS Express 解决 x64位的dll 而出现 未能加载文件或程序集“xxxxxxxx”或它的某一个依赖项。试图加载格式不正确的程序。...
  5. javaweb编辑器ckeditor配置_ckeditor编辑器在java项目中配置
  6. 通达信波段王指标公式主图_通达信波段王+精准买卖提示主图指标公式
  7. 有限域的加减乘除运算
  8. IOS开发之——硬件开发-蓝牙介绍(05)
  9. java 复制文本到剪贴板,使用Java将文本复制到剪贴板
  10. 基于C#的简单聊天软件开发
  11. HDU 5857 Median(水~)
  12. 51NOD - 1677treecnt
  13. java 自行车_JAVA 2020款山地车盘点
  14. Java基础break语句
  15. Holm–Bonferroni method
  16. 苹果浏览器实战(三)
  17. 如何使用jquery修改css中带有!important的样式属性
  18. Postgresql - 使用zabbix监控数据库- pg_monz
  19. verycd download materials
  20. [附源码]java毕业设计车辆违章信息管理系统

热门文章

  1. babel的使用及安装配置教程
  2. 笔试必备:48道SQL练习题(Oracle为主)
  3. java面试题学生表成绩表老师表_经典的SQL语句面试题
  4. directadmin php5.6,Directadmin 1.53开心版 安装教程
  5. 【知识学习】最大公因数gcd
  6. UG二次开发GRIP修改颜色
  7. 一大堆概率概念_拔剑-浆糊的传说_新浪博客
  8. 薛兆丰经济学课 1-1 人性与稀缺:经济学视角
  9. MinIO分布式文件服务器搭建与入门
  10. Oracle EBS AP付款(退款)无法产生损失(LOSS)会计分录