day0

news/2025/1/18 9:07:58/文章来源:https://www.cnblogs.com/chenhx-xcpc/p/18677996

简单数学基础

前言

数学是算法的核心

知识清单

  • 莫比乌斯反演

  • 高斯消元

  • 拓展欧几里得

  • 矩阵乘法

  • 逻辑、命题与证明

A - 简单莫反(I)

首先进行一个转化,记 \(f(u,v,k)\)\(x:1 \sim u;y:1\sim v;\gcd(x,y)=k\) 的答案

那么对于询问 \(a,b,c,d\) 有答案为 \(f(b,d,k)-f(a,d,k)-f(b,c,k)+f(a,c,k)\)

这么做是为了将询问从四个自由元变成两个自由元

如何求出 \(f(A,B,k)\)

实际上我们知道形如 \((kx,ky)\) 的数对的最大公因数一定是 \(k\) 的倍数,且最大公因数为 \(k\) 的倍数的数对一定可以写为 \((kx,ky)\) 的形式,因此我们证明了:

\[\{(kx,ky):1\le kx\le A,1\le ky\le B\}= \{(x,y):k|\gcd(x,y),1\le x\le A,1\le y\le B\} \]

\(g(A,B,k)\)\(x:1 \sim A;y:1\sim B;k|\gcd(x,y)\) 的答案

那么有

\[g(A,B,k)=\lfloor\frac A k\rfloor\cdot \lfloor\frac B k\rfloor=\sum_{k|s}f(A,B,s) \]

应用莫比乌斯反演有

\[\begin{align} f(A,B,k)&=\sum_{k|s}g(A,B,s)\cdot \mu(\frac s k)=\sum_{k|s}\lfloor\frac A s\rfloor\lfloor\frac B s\rfloor\cdot \mu(\frac s k)\\ &=\sum_{s=\lambda d}\lfloor\frac A {\lambda k}\rfloor\lfloor\frac B {\lambda k}\rfloor\cdot \mu(\lambda)=\sum_\lambda \lfloor\frac {\lfloor \frac A k\rfloor}\lambda\rfloor\lfloor\frac {\lfloor \frac B k\rfloor}\lambda\rfloor\cdot \mu(\lambda) \end{align} \]

应用整除分块即可

B - 简单高斯消元

可以把所有的可行的询问处理出来(先别问交互器,先在本地处理一下),当作一个线性方程组

然后就是看这 \(O(n^2)\) 个方程的秩是否为 \(n-1\) ,这是因为方程组有唯一解的充要条件是

\[r(A)=r([A|b]) \]

但是直接高斯消元的话时间复杂度是 \(O(n^4)\) 的,这个时候注意到系数矩阵的元素均为 \(0/1\) 因此可以使用 bitset 来优化,则时间复杂度为 \(\Theta(\frac {n^4} \omega)\)

C - 简单莫反(II)

先考虑去掉绝对值,那就是把 \(a_i\) 从小到大排序,那么答案就是

\[\begin{align} &2\sum_{i>j}(a_i-a_j)\cdot {b_ib_j\over\gcd^2(b_i,b_j)}\\ =&(\sum_{i\le n}a_ib_i\sum_{j<i}{b_j\over\gcd^2(b_i,b_j)})-(\sum_{i\le n}a_i\sum_{j<i}{a_jb_j\over \gcd^2(b_i,b_j)})\\ =&(\sum_{i\le n}a_ib_i\sum_{\substack{j<i\\\gcd(b_i,b_j)=t}}{b_j\over t^2})-(\sum_{i\le n}a_i)\sum_{\substack{j<i\\\gcd(b_i,b_j)=t}}{a_jb_j\over t^2} \end{align} \]

对于 \(j<i\) 的限制我们可以考虑从小往大维护一个累和的东西来完成所有就是

\[\begin{align} &(\sum_{i\le n}a_ib_i\sum_{\substack{j<i\\\gcd(b_i,b_j)=t}}{b_j\over t^2})-(\sum_{i\le n}a_i\sum_{\substack{j<i\\\gcd(b_i,b_j)=t}}{a_jb_j\over t^2})\\ =&\sum_{i\le n}a_i(b_i\sum_{t|b_i}{\sum_{\gcd(b_i,b_j)=t}b_j\over t^2}-\sum_{t|b_i}{\sum_{\gcd(b_i,b_j)=t}a_jb_j\over t^2}) \end{align} \]

(md,latex太难敲了,现场给你们讲吧)

就是仿照 A 题的处理思路来处理 \(\gcd(b_i,b_j)=t\) 的限制

所以时间复杂度就是 \(O(N\omega^2(N))\) 可以通过

D - 神奇不等式

首先注意到不等式:

\[|x-y|\le x\oplus y\le x+y \]

然后分类讨论:

对于 \(1\le y \le 2x\)\(y\)

暴力枚举检验

对于 \(2x < y\le m\)\(y\)

\[x\oplus y>y-x>\frac 1 2 y \Longrightarrow y不可能是 x\oplus y 的倍数 \]

所以有所有的 \(y\) 一定是形如:

\[x\oplus y = \lambda x\Longrightarrow y=\lambda x \oplus x \]

然后对于边界处的 \(\lambda\) 进行检验即可,时间复杂度为 \(O(\sum x+T\log m)\)

E - 不等式证明时间复杂度

首先不难注意到答案不超过 \(2\log a\) ,所以考虑爆搜,如果层数爆了就剪枝

那么时间复杂度为

\[O(\sum2^{2\log a})=O(\sum a^2)\le O\big((\sum a)^2\big) \]

F

这需要注意到一个性质:

性质1:

一个集合能合并的充要条件是差分数组的 \(\gcd\) 不含有 \(2\) 以外的因数

证:

考虑无法操作的时候,所有元素的差分数组是奇数且相等

因为如果存在偶数,那么可以把偶数拆分;

如果存在不同的奇数可以在不同的奇数间操作

然后不难发现一个性质是无论怎么操作差分数组的 \(\gcd\)\(2\) 的因子全部除去得到的值 \(\gcd'\) 是不变的

必要性:假如 \(\gcd'\not=1\) 则每个元素一定是 \(\gcd'\) 的倍数,不连续

充分性:假如 \(\gcd'=1\) 则每个元素最终必定为 \(1\) ,否则一定存在不同的奇数

然后通过欧几里得算法可知,改变集合内元素的顺序不影响 \(\gcd'\) ,所以只需要原序列的差分数组的 \(\gcd'=1\) 即可

实现方法有很多种,包括线段树和st表,这里提供 cdq分治 的做法

G - 有趣的构造题

考虑把所有数分成四类:

\[\begin{align} &x<{n\over2}:x\rightarrow 1\\ &x={n\over2}:x\rightarrow 2\\ &x={n\over2}+1:x\rightarrow 3\\ &x>{n\over2}+1:x\rightarrow 4 \end{align} \]

然后题面就转换为了求出 \(2,3\) 分别在哪,这个可以考虑每次去掉两个元素:

(a)如果去掉的是 \(1,4\) ,那么返回的答案是 \(2,3\)
(b)如果去掉的是 \(2,3\) ,那么返回的答案是 \(1,4\)
(c)如果去掉的是 \(1,2\) ,那么返回的答案是 \(3,4\)
(d)如果去掉的是 \(1,3\) ,那么返回的答案是 \(2,4\)
(e)如果去掉的是 \(2,4\) ,那么返回的答案是 \(1,3\)
(f)如果去掉的是 \(3,4\) ,那么返回的答案是 \(1,2\)
(g)如果去掉的是 \(1,1\) ,那么返回的答案是 \(3,4\)
(h)如果去掉的是 \(4,4\) ,那么返回的答案是 \(1,2\)

然后相当于使用了 \(n\over 2\) 次操作求出了每对相邻元素的类型

假如出现了 (b) ,直接结束

其余的情况考虑分类模拟即可

H - 线性基入门题

不难发现所有的环都是可以选择走或者不走的,这就启发我们使用线性基来计算

先把图的 \(dfs\) 生成树建出来,然后对于每个元素做一遍树上前缀异或,然后查看非树边能不能有机会为这一层的线性基贡献元素,然后一层层从大到小构造线性基,记得构建完每层的线性基要把那一层的值都给消掉,这个过程与高斯消元法是一致的

然后看看怎么处理答案:

把建完线性基的图再跑一遍 \(dfs\) 生成树,令 \(a_i\) 表示根节点到 \(i\) 节点的前缀异或值,这个时候对于任意一个边 \((u,v,w)\) 一定有 \(a_u\oplus a_v=w\)

对于一个 \(x,y\)\(d(x,y)=(a_x\oplus a_y)\oplus t\) 其中 \(t\) 是从线性基里贪心选取出来的

这个时候我们不能直观地看出 \(t\) 要选哪些,但是如果我们将线性基的矩阵化为标准型,那么 \(a_x\oplus a_y\) 有哪一位是 \(0\) ,这一位的线性基就要被选取,之后我们就只需要关心一个区间里有多少个位是 \(0\) 即可,这个可以用 \(\log\) 个前缀和来维护

I

建议先把 J 做出来再做这个题

不难发现结构:

POP 1 GOTO 2;PUSH 1 GOTO 1
POP 2 GOTO 3;PUSH 2 GOTO 1
POP 3 GOTO 4;PUSH 3 GOTO 1
...
POP [i] GOTO [i+1];PUSH [i] GOTO 1
...
POP [K] GOTO [K+1];PUSH [K] GOTO 1
HALT;PUSH 114514 GOTO 1919810

会被运行恰好 \(\sum_{i=1}^K 2^i\)

然后不难发现将第 \(x(K>x)\) 行的 GOTO 1 改为 GOTO 2 那么将使答案减少 \(2^{K-i}\)

所以需要求出最大的 \(K\) 使得 \(2^K\le n\)

事实上,这个构造是该题目的最优解,赛时通过此题允许两倍的构造空间

J - 递归分析

事实上想整出死循环还是很简单的

由于每次是在栈顶添加和访问元素,所以可以考虑对于每一个指令分别求出其存活周期(因为它会把以前的元素覆盖掉)

(1)事实上如果一个指令会去到死循环的指令,那么这个指令是死循环的

(2)一个指令的生命周期内不能再次出现自己

对于每个指令维护:

生命周期、生命周期结束后去到那个位置(或者程序终止)

由于确保了 (2) 性质,每一个指令遍历的元素不会超过 \(O(n)\) 因此时间复杂度为 \(O(n^2)\)

K - 简单证明题

先二分答案,把所有的点都变成黑白点

然后注意到一个性质:

性质1

最后的答案能成为黑点的充要条件是:

​ (1)存在一个黑点的度数大于2

​ 或者

​ (2)存在至少两个黑点

可以使用归纳法证明

L

转化一下题意: 就是要求 \(ad+bc\over bd\) 约分完后分母仅剩 \(2,5\) 因子

考虑进行一些变换:设 \(g=\gcd(b,d),b=b'g,d=d'g\)

\[{ad+bc\over bd}={ad'+b'c\over b'd'g} \]

可以分析:\(b',d'\) 均只含有因数 \(2,5\)

所以 \(g\) 是确定的,就是 \(b\) 把因子 \(2,5\) 除掉的值,然后暴力枚举 \(b'\) 对于 \(c\) 做拓欧即可

M

事实上,与其关心两者的比例不如关心其中一者的占比

然后这个题目就转换为:

\[\begin{align} c_i\in\{0,1\},{\sum_{i=0}^na^ib^{n-i}\over(a+b)^n}={x\over x+y} \end{align} \]

递归判断即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/871127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

threejs 实现镜面反射,只反射指定物体,背景透明

一、背景 最近在做数字孪生项目,使用threejs渲染模型,UI要求地面反射建筑物,也就是模型要有倒影。 二、调研 在官网找到一个镜面反射的例子(https://threejs.org/examples/?q=refle#webgl_mirror) 如图:和UI要的功能类似,但有缺陷 1、反射出了地面上所有的元素,连天空…

3D-NAND 计算(下)

过去几年, 具有存算一体特性的 AI 芯片不断 涌现, 工艺节点涵盖了 14—180 nm, 计算架构包括 了近存计算、存内计算和神经形态计算, 应用场景 覆盖了边缘端到云端设备. 在各种硬件方案中, 基 于 3D-NAND 的神经形态芯片在芯片容量, CMOS 工艺兼容性和成本方面极具优势. 本文首先…

海康工业相机的应用部署不是简简单单!?

作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 笔者使用的设备及环境:WSL2-Ubuntu22.04+MV-CS016-10UC 不会吧?不会吧?不会还有人拿到海康工业相机还是一脸懵叭?不会还有人觉得海康相机的API使用很难叭?不用慌!这篇文章从官方文档涵盖了海康相机官方…

3D-NAND 计算(上)

3D-NAND 闪存工艺成熟并且存储密度极高, 基于 3D-NAND 的神经形态芯片受到许多研究者的关注. 然而由于该技术的专利性质, 少有基 于 3D-NAND 神经形态计算的硬件实现. 本文综述了用 3D-NAND 实现神经形态计算的工作, 介绍了其中前 向传播和反向传播的机制, 并提出了目前 3D NAN…

blender4.3.2-修改器

关于修改器的其他问题 1.在修改器执行应用前,无法与其他物体进行合并 阵列修改器 生成->阵列指定数量和间隔,生成克隆体,所有克隆体同步发生选中和修改 倒角修改器 生成->倒角使用倒角修改器而不直接使用编辑模式中的倒角,好处在于像立方体这种使用了倒角修改器而未应…

推荐书籍《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》4本,谢谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

2025 最佳免费商用文本转语音模型: Kokoro TTS

在文本转语音(TTS)技术领域,一项突破性的进展引起了广泛关注——Kokoro TTS 模型凭借其卓越性能和完全免费的商用许可,成为目前最出色的 TTS 解决方案之一。基于广受欢迎的开源框架 StyleTTS,Kokoro TTS 在灵活性和功能性上都表现出色,可广泛应用于多种场景。接下来,我们…

2025春秋杯部分wpDAY1

2025春秋杯 DAY1 WEB easy_flask 直接fenjing一把梭file_copy 下载github上的脚本MISC 简单算术 题目提示了异或简单镜像提取formost提取到镜像文件然后用autopsy打开flag{E7A10C15E26AA5750070EF756AAA1F7C} CRYPTO 通往哈希的旅程 import hashlib# 目标哈希值 target_hash = …

【教育行业】2024中国网络安全产业势能榜优能企业「教育行业」典型案例展示

教育行业的数字化转型不断加速,线上教学、学籍管理、科研数据等方面的安全问题日益突出。随着教育信息化的不断推进,如何保护学生和教师的个人信息、确保教学平台的安全成为亟待解决的重要课题。我们将通过一些典型案例,展示教育行业在提升信息安全方面的最新成果和应对之策…

去攀登更高的山,渡过更长的河--软件工程个人总结

轻舟已过万重山——2024秋软工实践个人总结博客一、学期回顾 1.1 回顾你对于软件工程课程的想象 初次接触软件工程这门课程时,我内心充满了忐忑与不安 😰。作为一门实践性极强的课程,它不仅要求我们掌握各种开发技术,还需要我们具备团队协作、项目管理等综合能力。我记得第…

Avalonia系列文章之小试牛刀

最近有朋友反馈,能否分享一下Avalonia相关的文章,于是就抽空学习了一下,发现Avalonia真的是一款非常不错的UI框架,值得花时间认真学习一下,于是边学习边记录,整理成文,分享给大家,希望可以一起学习,共同进步。最近有朋友反馈,能否分享一下Avalonia相关的文章,于是就…

器件选型基础知识

器件选型基础知识器件选型基础知识 1. PCB结构与工艺 PCB主要由五部分组成,分别是介电层、孔、防焊墨油、丝印和线路组成。介电层:用来保持线路及各层之间的绝缘性,俗称为基材,最常见的材料是玻璃纤维; 孔:导通孔可以使两层次以上的线路彼此导通; 防焊墨油:对于整个电路…