首页 > 其他分享 >【日总结】2022.12.5

【日总结】2022.12.5

时间:2022-12-05 19:44:24浏览次数:62  
标签:总结 10 le bmod 那么 abs 2022.12 mathrm

学了一周 whk,滚回来 OI 了。

今天啥都没干,颓了一天。

[ARC152E] Xor Annihilation

感觉很强。

题目看起来很复杂,所以我们要想办法转换题意。注意到所有的值异或和为 \(0\),那么假如某个球左面的权值异或和为 \(L\),那么右面的权值异或和 \(R=L \oplus w_i\)。于是我们可以尝试先对权值进行前缀异或和,设 \(p_i\) 为前 \(i\) 个数的异或和,那么 \(L=p_{i-1},R=p_{i}\)。

考虑当两个球 \(i,i+1\) 合并后,得到的新球的 \(L=p_{i-1}, R=p_{i+1}\),那么实际上就是把 \(p_i\) 删除掉了。而两个球能够合并,说明 \(p_{i-1} \le p_i\) 且 \(p_i \ge p_{i+1}\) 且 \(p_{i-1} \ne p_{i+1}\),也就是只要有凸起那么就会被删掉。那么最后肯定会删的只剩一个下凸的形状或者是平的。因为 \(p_0=p_{n+1}=Z\),那么如果所有 \(p_i\) 的最小值 \(=Z\),那么最后会停止,否则不会停止。

那么我们就是要求有多少 \(Z\) 满足对于所有的 \(p_i\),\(Z \ge (Z \oplus p_i)\),这等价于 \(p_i\) 的最高位在 \(Z\) 上为 \(0\),那么我们只需要统计有多少个位必须填 \(0\),剩下的随便填即可。

mod M 大礼包

mod M

给定一个序列 \(\{a_n\}\),选取一个数 \(m \ge 2\),使得将所有的 \(a_i \gets a_i \bmod m\) 后,最小化互不相同的 \(a_i\) 数。
\(n \le 2\times 10^5,a_i \le 10^9\)

最弱智的一个。

首先观察可以发现,如果将所有数\(\bmod 2\) 后,不同的数只有 \(2\) 个,所以答案上界就是 \(2\)。我们只需要寻找是否存在一个 \(m\) 使得所有的 \(a_i \bmod m\) 都相等即可。

有一个技巧:\(a_i \equiv a_j \pmod m\) 等价于 \(m\mid \mathrm{abs}(a_i-a_j)\)。那么假如所有数相等,我们只需要\(\bmod \gcd\limits_{i=1}^{n-1}\mathrm{abs}(a_{i+1}-a_i)\) 就可以了。所以我们只需要判断一下这个数是否不等于 \(1\) 即可。

Yet Another mod M

给定一个序列 \(\{a_n\}\),选取一个数 \(m \ge 3\),使得将所有的 \(a_i \gets a_i \bmod m\) 后,存在主元素(出现次数多于一半的数)。输出任意一个 \(m\)。若无解,输出 \(-1\)。
\(n \le 5000,a_i \le 10^9\)

官方题解给的是随机化算法:

首先同样的,主元素中肯定存在很多相等的数对,而这样相等的数对数量大约占所有数的 \(1 \over 4\),所以我们可以每次随机选出两对数,然后枚举 \(\mathrm{abs}(a_i-a_j)\) 的所有因子,再判断一下是不是即可。

用户题解里给出了一个优美的确定性算法。

我们发现,由于这个主元素出现次数大于一半,那么绝大部分情况下都存在相邻两个数相等,而只有当 \(n\) 为奇数时,有可能会不存在相邻的两个数相等(例如 \(1,2,1,3,1,4,1\)),那么此时第一个数一定与最后一个数相等。那么这样我们就只需要判断这 \(n\) 个差是否合法即可。

F**king Another mod M(?

gtm1514 给我的,不知道哪里的题。

给定一个序列 \(\{a_n\}\),选取一个数 \(m\),使得将所有的 \(a_i \gets a_i \bmod m\) 后,数字互不相同。求最小的 \(m\)。
\(n \le 10^6,a_i \le 10^6\)(注意值域)

互不相同就相当于 \(m\) 不是任意一个 \(\mathrm{abs}(a_i-a_j)\) 的因子。而 \(\mathrm{abs}(a_i-a_j)\) 的值域只有 \(10^6\),所以考虑可以用 FFT 求出所有 \(a_i-a_j\) 的取值。

具体就令 \(A_j\) 为 \(a_i=j\) 的出现次数,\(B_{n-i}=A_{i}\),那么 \(C_{i-j+n}=\sum A_iB_{n-j}\),直接 FFT 就行了。

然后我们知道了所有 \(\mathrm{abs}(a_i-a_j)\),那么只需要标记出他们的所有因子即可。直接枚举是 \(O(n \sqrt n)\) 的,可以通过枚举因子的倍数做到 \(O(n \log n)\)。

标签:总结,10,le,bmod,那么,abs,2022.12,mathrm
From: https://www.cnblogs.com/apjifengc/p/daily-2022-12-5.html

相关文章

  • android开发内存泄漏分析步骤总结
    思路:复现泄漏步骤,dumphprof文件,用MAT工具分析大对象的引用链。操作步骤:1、adbshell进入Android系统2、amdumpheap[进程名]/data/local/tmp/temp.hprof3、另起......
  • 设计模式简单总结
    UML例子该例子主要有继承关系,实现接口关系,依赖关系,组合(合成)关系,关联关系。UML中接口的两种表示方法:简单工厂模式如果只有计算父类和具体的加减乘除子类就已经满足封......
  • Pta6-8次题目集总结
    前言对于这三次大作业,主要的难题就是电信计费系列的题目,以及接口的使用还有迭代器的基本使用,最后一次大作业还复习了之前的多态的内容。总体来说这三次大作业难度不大,题量......
  • 别被不会表达拖了后腿——总结
    【背景】  别被不会表达拖了后腿一书,是在阳光云视科技公司转正时候公司增的书,当时就觉得很适合自己,然而过了很久也没有再关爱"它",前不久有了这方面迫切需求,于是乎每天阅......
  • 数据结构导论——总结
    目录​​一、背景介绍​​​​二、学习思路​​​​三、学习过程​​​​四、学习总结​​​​收获​​​​提出的问题​​​​五、升华​​一、背景介绍数据结构学习了N遍......
  • 淘淘总结——走在践行的路上
      陆陆续续,间间断断的将淘淘商城进行完了,其中学了不少的东西自然是不错的;走过的路,犯过的错,趟过的水,这就是所谓的经验们吧O(∩_∩)O~  一个电商项目的初次了......
  • 【Spring Cloud系列一】——宏观总结
    【背景】  2017年我了解了SpringCloud这个思想,其中有在外面公司面试的时候了解到过,有听过相关的分享会了解过,有在项目中进行架构选型的时候简单的了解过,一直对于它有......
  • 2017年终总结——梦飞吧我的男孩
      踏着时光的脚步,追随每天滴滴答答钟声的回忆,人生的青春也就那么个阶段,虽然我依旧处在青春之路上,可能在经历了一番不同阶段的插曲的我早一些理解生活吧。  不过在......
  • go面试题总结
    1.tcp/ip3次握手和4次挥手3次握手需要客户端确认,因为服务器端不确定对方是否收到,所以客户端必须发送ack确认一下为什么需要4次挥手,客户端发起fin+ack到服务器,服务端发起ac......
  • redis底层数据结构总结
    hash:是一维数组加链表 ziplink:压缩列表相当于数组,链表查询速度快,查找慢跳表:是个有序的链表,实现有序数组的二分查找,缺点是占用更多的内存空间。跳表是每隔2个元素选出一......