首页 > 其他分享 >Friendly Arrays题解

Friendly Arrays题解

时间:2023-09-20 19:57:14浏览次数:38  
标签:Arrays 题解 异或 这道题 按位 答案 Friendly

2023-09-18

题目

Friendly Arrays

难度&重要性(1~10):5

题目来源

luogu

题目算法

贪心

解题思路

一道大水题。

这道题解法非常的套路,我们需要对于处理按位或和按位异或时,首先就要把数拆成二进制的形式去考虑。

首先我们需要简单了解一下按位或和按位异或的运算规则:

  • 按位或,对于两个数每一位,只要有一个是 \(1\) 结果就是 \(1\),只有当两个都是 \(0\) 是结果才为 \(0\)。

  • 按位异或,对于两个数每一位,如果两位相同即为 \(0\),两位不同即为 \(1\)。

知道这些已经可以做这道题了,我们就可以考虑贪心了。

我们的贪心要做一个小小的分讨:

  • 当 \(n\equiv0\pmod{2}\) 时,每对 \(b_i\) 做一次处理,\(b_i\) 中为 \(1\) 的位在 \(a_i\) 之中就都为 \(1\) 了。而由于 \(1\) 的个数是偶数个,异或结果就只能为 \(0\),这很明显答案单调不增。所以最大答案就是不进行任何的操作,而最小答案则是对每一个 \(b_i\) 都进行一次操作,这样 \(b_i\) 中含 \(1\) 的位数在答案中就都是 \(0\)。

  • 当 \(n\equiv1\pmod{2}\) 时,而由于 \(1\) 的个数是奇数个,异或结果就为 \(1\),这很则是答案单调不减。所以最小答案不进行任何的操作,最大答案就每一个 \(b_i\) 都进行一次操作,这样 \(b_i\) 中含 \(1\) 的位数在答案中就都是 \(1\) 了。

这样我们就解决了这道题,具体细节请看代码。

完成状态

已完成

标签:Arrays,题解,异或,这道题,按位,答案,Friendly
From: https://www.cnblogs.com/OIerBoy/p/17718220.html

相关文章

  • 使用dom4j解析xml文件及selectNodes取不到值问题解决
    参考文档:https://blog.csdn.net/PARADDD/article/details/131307189https://blog.csdn.net/weixin_37703598/article/details/81273199......
  • asp.net 跨域问题解决
    前言:近期在对接前后端分离的项目中遇到了跨域问题,查了一些资料都比较新,没有比较老的解决方式所以记录一下背景如下:后端最老的aspx前端vue3部署在iis上1.跨域的处理点击查看代码<httpProtocol> <customHeaders> <addname="Access-Control-Allow-Origin"value=......
  • 【POJ 3278】Catch That Cow 题解(广度优先搜索)
    农夫约翰已被告知一头逃亡奶牛的位置,并想立即抓住她。他从一条数字线上的N点(0≤N≤100000)开始,奶牛在同一条数字线上的K点(0≥K≤100000)。农夫约翰有两种交通方式:步行和坐车。*步行:FJ可以在一分钟内从任何点X移动到点X-1或X+1*坐车:FJ可以在一分钟内从任何X点移动到2×X点。如果奶......
  • 题解 [ARC165C] Social Distance on Graph
    赛时:看不懂题,啊这!赛后:就这?题目描述有一个简单相连的无向图,其顶点数为\(n\),编号为\(1\)至\(n\)。图中有\(m\)条加权边,第\(i\)条边连接顶点\(a_i\)和\(b_i\),权重为\(w_i\)。此外,连接两个顶点的简单路径的权重是简单路径中包含的边的权重之和。我们给每个顶点涂上红......
  • QOJ61 Cut Cut Cut! 题解
    题面。题解假设\(1\)号点有\(d\)条出边,给\(d\)条出边赋\(d\)个独立的单位向量,接下来,每个出边记作入边的随机线性组合,那么对于第\(i\)个点,答案就是入边生成的线性空间的秩。正确性证明:对于每个点考虑,假设现在考虑\(i\)号点,将其入边集合记作\(E1_{i}\),出边集合记......
  • 9.20周三(动手动脑问题解决)
    无法编译原因:没有默认构造推出结论:当你给类提供了一个自定义的构造方法,导致系统不在提供默认构造方法了,需要自己提供初始化测试packageorg.example;publicclassInitializeBlockClass{publicintfield=100;{field=200;}publicInitiali......
  • Acwing393. 雇佣收银员 题解 差分约束
    题目链接:https://www.acwing.com/problem/content/description/395/解题思路:差分约束。为了方便起见,定义第\(i\)个时间段为\(i-1:00\)到\(i:00\)这个时间段。首先,为了方便开一个额外的点,令\(R_i\)对应为题目中的\(R(i+1)\),即\(R_i\)表示\(i-1:00\)到\(i:00\)这......
  • CF1599E Two Arrays
    Dq17y。考虑斐波那契通项公式,分别维护区间\(\left(\frac{1+\sqrt5}{2}\right)^{a_{1,i}+a_{2,i}}\)和\(\left(\frac{1-\sqrt5}{2}\right)^{a_{1,i}+a_{2,i}}\)的和。显然可以扩域,定义一个\(n=a+\sqrt5b\)的结构体即可。然后快速求斐波那契数列某项就可以直接快速幂了。......
  • 微软自带拼音输入法不显示选字框的问题解决
    运行框、聊天框都不显示右击右下角的图标-设置-常规-兼容性拉到最下面有个“兼容性”,勾选即可现在OK了......
  • CF1767C Count Binary Strings 题解
    CF1767CCountBinaryStrings题解Foreword感谢@樱雪喵、@swiftc两位大佬的耐心指导。Links洛谷CodeforcesDescription有一个长度为\(n\)的01串\(s\)(下标从\(1\)开始)和一些限制\(a_{i,j}(1\lei\lej\len)\)。\(a_{i,j}\)的含义如下:\(a_{i,j}=\)含义......