当前位置: 首页 > news >正文

P12828

神秘啊

\(x\oplus y=gcd(x,y)\)

发现,当 \(x<y\) 时,\(x\oplus y\ge y-x\ge gcd(x,y)\)

那么我们这个条件就限定了上面这 \(3\) 个东西相等,记为 \(d\)

\(y-x=d\)\(gcd(x,y)=d\)

那么设 \(x=kd\)\(y=kd+d\)

\(k^{2}d^{2}\mod kd^{2}+d^{2}\)

\(d^{2}(k^{2}\mod k+1)\)

\(d^{2}(1+(k+1)(k-1)\mod k+1)\)

\(d^{2}\)

那么我们现在把条件变成了

我们找到一个x,然后找到它二进制的子集作为 \(d\),这样的话,我们也能找到 \(y=x-d\),现在我们要统计 \(d^{2}\) 的和。不兑,我们还有一个 \(gcd\) 的限制

那么我们枚举 \(x\),然后看看二进制最大的后缀使得 \(\le x\),然后加上 \(d^2\),这样是 \(x\log m\) 的,实现优秀可以获得 \(50\) 分。

我们不妨对于所有符合条件的后缀二进制计数。枚举 \(d\),求有多少 \(y\) 使得 \(d|y\) 并且 \(d\) 二进制下为 \(y\) 的真子集。

也就是说 \(y\equiv 0\pmod d\)\(y\equiv d\pmod {2^{k}}\) 其中 \(2^{k}\)\(\ge d\) 的第一个二次幂

这样是不足以刻画这个条件的?我唐了,原来 \(y\)\(d\) 的超集。那么我们先枚举 \(y\) 后面 \(\log m\) 位,然后枚举子集作为 \(d\),然后得到一个方程组 \(y\equiv 0\pmod d\)\(y\equiv p\pmod {2^{k}}\) 其中 \(2^{k}\)\(\ge d\) 的第一个二次幂,这样就好了。

枚举子集,思想很简单,比如我们要枚举 \(x\) 的子集,我们首先扔到 \(for\) 循环里,然后每次 \(-1\),再和 \(x\) 取个交即可

这题我们是枚举超集,一样的

复习一下 \(\text{excrt}\)

现在我们考虑合并

\(x\equiv a_{1}\pmod {b_{1}}\)

\(x\equiv a_{2}\pmod {b_{2}}\)

首先,我们新方程的模数是 \(lcm(b_{1},b_{2})\) 这个容易理解

\(x=a_{1}+k_{1}b_{1}\)

\(x=a_{2}+k_{2}b_{2}\)

\(k_{1}b_{1}-k_{2}b_{2}=a_{2}-a_{1}\)

使用 \(exgcd\),求出来了 \(k1\)\(k2\),此时我们也知道了 \(x\),因为我们又知道了新的模数,所以我们直接让 \(x\) 对新的模数取模即可,这样就是 \(excrt\) 了!看起来之前学得还不错

http://www.jsqmd.com/news/54303/

相关文章:

  • XYD11.25模拟赛
  • HTML---------------示例代码(1)
  • xenomai3 pcie网卡偶发性的oops
  • OOP-实验4 - FF
  • day13-影刀RPA01
  • 6001 week1
  • 11月28日总结 - 作业----
  • P10055
  • P10704
  • P8617
  • P2754
  • P2474
  • RAG的17种方式搭建方式研究
  • 英语_阅读_Reality shows_待读
  • 2025.11.28博客
  • P3825
  • P11261
  • P10173
  • HTML表格列表
  • 实用指南:预测市场——polymarket:人类信号的回潮与金融权力的新边界
  • windows docker cpu和内存占用
  • NGINX 负载均衡应用实战:从配置到策略的深度解析 - 实践
  • 域控一些常用的命令学习记录
  • 全球首个语音 AI 广告平台问世;Sam Altman 与 Jony Ive:合作新硬件将「如湖畔山间小屋般平静」丨日报
  • R语言包的几种安装形式
  • [中等] QR1
  • 详细介绍:计算机操作系统:用户层的I/O软件
  • 2025年11月上海水溶肥设备厂家推荐前十指南:专业选择与经验分享
  • Docker 部署 vs 二进制部署 在运维中的选择原则。
  • 设计模式深度解析:策略模式、责任链模式与模板模式