CF1918C XOR-distance

考虑对 \(a,b\) 进行二进制分解,在二进制位中进行计算。

设 \(a_i\) 表示数 \(a\) 二进制第 \(i\) 位。如果 \(a_i=b_i\),则不需要对 \(x_i\) 进行任何构造。但如果 \(a_i\) 不等于 \(b_i\),把 \(x_i\) 置为 \(1\) 只能改变 \(a_i\) 和 \(b_i\) 的大小关系,不能使其相等。

所以,我们从高位开始考虑,因为高位影响一定超过低位影响,所以不需要管对低位的影响,计算比较方便。首先找到第一个 \(a_i\) 与 \(b_i\) 的大小关系,根据进制位定义,可以推出高位影响一定超过低位影响,\(a\) 和 \(b\) 的大小关系就已经确定了。接下来,就是在下面的几位中,尽量使较大的数较小,较小的数较大即可,不需要管对低位的影响。

注意在修改时 \(x\) 的值不能超过 \(r\)。

时间复杂度为 \(O(t\log n)\),可以通过。

#include <bits/stdc++.h>
using namespace std;
long long t,n,m,r,a[200][2];
int main()
{
scanf("%lld",&t);
while(t--)
{
long long flag=-1,ans=0;
scanf("%lld%lld%lld",&n,&m,&r);
for(int i=0;i<=63;i++)
{
if(n&((long long)1<<i))a[i][0]=1;
else a[i][0]=0;
if(m&((long long)1<<i))a[i][1]=1;
else a[i][1]=0;
}
for(int i=63;i>=0;i--)
{
if(a[i][0]==a[i][1])continue;
if(flag==-1)
{
if(a[i][0]>a[i][1])flag=1;
else if(a[i][0]<a[i][1])flag=0;
ans+=((long long)1<<i);
}
else if(a[i][0]>a[i][1])
{
if(flag==1&&r>=((long long)1<<i))r-=((long long)1<<i),ans-=((long long)1<<i);
else if(flag==0)ans-=((long long)1<<i);
else if(flag==1)ans+=((long long)1<<i);
}
else if(a[i][0]<a[i][1])
{
if(flag==0&&r>=((long long)1<<i))r-=((long long)1<<i),ans-=((long long)1<<i);
else if(flag==1)ans-=((long long)1<<i);
else if(flag==0)ans+=((long long)1<<i);
}
}
printf("%lld\n",ans);
}
return 0;
}

CF1918C XOR-distance 题解的更多相关文章

  1. [LightOJ1240]Point Segment Distance 题解

    题意简述 原题LightOJ 1240,Point Segment Distance(3D). 求三维空间里线段AB与C. 题解 我们设一个点在线段AB上移动,然后发现这个点与原来的C点的距离呈一个单 ...

  2. poj2689 Prime Distance题解报告

    题目戳这里 [题目大意] 给定一个区间[L,R],求区间内的质数相邻两个距离最大和最小的. [思路分析] 其实很简单呀,很明显可以看出来是数论题,有关于质数的知识. 要注意一下的就是L和R的数据范围都 ...

  3. POJ2689:Prime Distance——题解

    http://poj.org/problem?id=2689 题目大意,给不超过int的l,r,其中r-l+1<=1000000,筛出其中的素数,并且求出相邻素数差值最大和最小的一对. ———— ...

  4. HDU4825:Xor Sum——题解

    http://acm.hdu.edu.cn/showproblem.php?pid=4825 Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含 ...

  5. [CF959F]Mahmoud and Ehab and yet another xor task题解

    搞n个线性基,然后每次在上一次的基础上插入读入的数,前缀和线性基,或者说珂持久化线性基. 然后一个num数组记录当时线性基里有多少数 然后每次前缀操作一下就珂以了 代码 #include <cs ...

  6. AT2272 [ARC066B] Xor Sum 题解

    题目连接:传送门 分析 这道题只看题目中给的样例是找不出规律的 所以我们可以打一下表 1, 2, 4, 5, 8, 10, 13, 14, 18 如果你还是没有看出什么规律的话,我们可以从OEIS上搜 ...

  7. AGC016D - XOR Replace 置换/轮换

    目录 题目链接 题解 代码 题目链接 AGC016D - XOR Replace 题解 可以发现一次操作相当于一次置换 对于每个a上的位置映射到b对应 可以找到置换群中的 所有轮换 一个k个元素的轮换 ...

  8. [Leetcode Week8]Edit Distance

    Edit Distance 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/edit-distance/description/ Description ...

  9. HDU 全国多校第四场 题解

    题解 A AND Minimum Spanning Tree 参考代码: #include<bits/stdc++.h> #define maxl 200010 using namespa ...

  10. P9033题解

    P9033「KDOI-04」XOR Sum 题解 题目链接 传送门 题意简述 构造一个长度为 \(n\),值域为 \([0,m]\) 的异或和为 \(k\) 的序列,如果不存在则输出 \(-1\). ...

随机推荐

  1. 第十五届蓝桥杯javaA组 砍柴 (两种写法)详解

    参考资料 原题链接砍柴 - 蓝桥云课 (lanqiao.cn) 区间质数搜索--埃拉托斯特尼筛法和欧拉筛法-CSDN博客 思路 质数筛 + 二分 + 博弈 + 状态机(只因bushi) $$ 状态转移 ...

  2. File类使用详解

    File类是java io包下代表与平台无关的文件和目录,也就是说,在程序中操作文件和目录都可以通过File类来完成.但是File不能访问文件内容本身,访问文件内容需要使用输入/输出流. File类的 ...

  3. apisix~ApisixPluginConfig的使用

    1. ApisixPluginConfig 的作用 插件配置复用:将插件配置定义为独立的资源,供多个路由或服务引用. 解耦插件与路由:修改插件配置时,只需更新 ApisixPluginConfig,无 ...

  4. 如何使用 MySQL 的 EXPLAIN 语句进行查询分析?

    如何使用 MySQL 的 EXPLAIN 语句进行查询分析? EXPLAIN 是 MySQL 提供的分析 SQL 查询执行计划的工具,用于了解查询语句的执行过程,帮助优化查询性能. 1. EXPLAI ...

  5. easy-query隐式Group革命性OLAP优化JAVA下最强查询ORM没有之一子查询合并

    easy-query JAVA下最强查询ORM没有之一的任意子查询合并革命性OLAP优化 前言 对于大部分OLTP而言的查询市面上常见的orm已经能很好的处理,只要建立好对象关系那么就可以非常简单的实 ...

  6. 揭秘AI自动化框架Browser-use(三):Browser-use控制浏览器的核心机制

    1. 概述 在Browser-use框架中,核心任务是使大模型能够像人类一样操作浏览器.本文深入探讨大模型如何实际控制浏览器,重点解析从模型输出到浏览器动作执行的完整流程. 上一篇(公众号首发)-Br ...

  7. Java---switch...case中case可以匹配些什么

    switch-case语句 case 标签可以是 : •类型为 char.byte.short 或 int 的常量表达式. •枚举常量. •从 Java SE 7 开始,case 标签还可以是字符串字 ...

  8. 『Plotly实战指南』--在金融数据可视化中的应用(下)

    在金融市场的复杂博弈中,可视化技术如同精密的导航仪. 传统静态图表正在被交互式可视化取代--据Gartner研究,采用动态可视化的投资机构决策效率提升达47%. 本文的目标是探讨如何利用 Plotly ...

  9. 【MOOC】华中科技大学计算机组成原理慕课答案-第八章-输入输出系统

    应一个同学后台留言,说让我发就发全,那我干脆把剩的这一章测验也发了吧. 以下解析由GPT生成,不保证可读可解释,仅保证答案正确. 单选 1 (单选(2分)) ‎某中断系统中,每抽取一个输入数据就要中断 ...

  10. MySql的information_schema.processlist库学习之"如何检测出大数据sql查询"

    1.如何通过MySql检测出大数据sql查询 一般数据库都会存在:information_schema数据库 检测出大数据sql查询[time时间越长说明,数据量越大,要根据公司的限度来衡量,我的思路 ...