Skip to content

泉州一中信息学Blog

信息学奥赛技术分享博客

  • 登录
  • 小学oj
  • 中学oj
  • 测试页面1
  • Toggle search form

中山集训7.31

Posted on 2025年7月31日 By 黄, 涵波 中山集训7.31无评论

七月的Last Day

今天没比赛,讲专题
早上讲李超线段树,听不懂一点,大致是用于求解在平面内给定线段中,对于一个x值其对应的最大y值是多少的数据结构,是线段树的一个变种

由于实在搞不懂,于是我就只好自学点其它东西了

Johnson算法

这是一种用于求解全源最短路的算法,其本质思想就是跑次dijkstra或bellman-ford(spfa),神奇的是,这玩意对于求有负权边的图时,也可以考虑用dijkstra算法,不过要用spfa预处理一下负权边

在学这个到时候,我第一次听说图论中有势能这一概念
具体内容看

Link

模板题
luogu B3609

Code




首先用spfa处理图中的负权边,建立超级源点后,将其到各点的最短距离作为各点的势能,并同时判断是否有负环

接着用各点的的势能重构图中边权后,就能跑dijkstra了,这里用的是其堆优化版本

数论题

T1 因子和Luogu P1593

这题刚看题目就知道应该要用质因数分解了,但是分解完后就不知道要怎么做了
看了题解,得到了一个比较重要的公式

这是经质因数分解后,求解因子和的公式
有了这个以后,再用等比数列求和公式化简,用快速幂求解
但是会发现,求解时要除以一个(pi-1)的项,那么由于是在模意义下的,我们可以看作乘上(pi-1)关于9901的乘法逆元
若gcd(pi-1,9901)=1那么就存在乘法逆元,又注意到9901是质数,因此我们可以用费马小定理求解乘法逆元;若不是,则说明pi-1应为9901的倍数,那么就很好处理了

于是 (pi-1) mod 9901 = 0

则pi mod 9901 = 1

所以对于上面乘积式的该分量,就等于其最大幂数+1

Code:

细节注意:最后的答案输出先加了M再模M后输出答案的原因是前面sum函数中第二个return中有一个(quick_pow(x,y+1)-1)的项,这项有可能为负数,因此需要处理

T2 签到题Luogu P3601

P3601

不是我嘲讽它的难度,是这题真的叫做签到题,但是难度达到了蓝题的水准,没看题解自己做真做不动,事实上题目翻译一下就是要我们求这样一个东西

不难发现左边的求和O(1)就能搞定,但是右边的这个和它的数据范围,真的一言难尽,
题解的思路也是非常巧妙,模仿了筛法的思想,将1e6范围内的质数预处理出来,再考虑其倍数的欧拉函数值,利用欧拉函数是积性函数的性质,进行求解,另外就是可以把下表减掉一个L,这样数组就放得下了

一篇比较好的题解

其中求解欧拉函数我们要用到的公式

这不得记下

然后就是Code了

细节:除了题解当中的,我认为比较巧妙的就是主函数第二个循环中,用下标取余找倍数的部分,这里一定要对pi再取余一次,因为可能会出现刚好L是pi的倍数,那么应该从j=0开始枚举,如果没有再取余的话,就会从j=pi开始枚举,就会漏掉j=0的情况

T3及其加强版

弱版
加强版

题意大致就是给定一个n,然后求对于1~n每个数的约数个数之和

这两题简直天壤之别,一道普及-,另一道直接变黑题了

先讲讲弱版的解法吧

P1403

这个事实上我们可以用逆向思维来解决,原题等价于求1到n中1到n的倍数个数之和(这么表达好像有点奇怪,但无伤大雅),那就十分简单了,答案就是

代码也很简短,没有几行

SP26073

话锋一转,来看看黑题的数据规模

n这么大也就算了,还多测,很难想象时间复杂度的式子长什么样,直接看题解吧

题解

哇塞,这个题解第一步转换就很离谱

说实话看得不是很懂,AI说可以拆开证明,但能想到这个式子也是注意力惊人

这里恶补了一会数学
求和下标变换
取整函数性质

然后题解说需要用到Stern–Brocot,我听都没听过,又去OI_WIKI上恶补了一会,发现根本看不懂

于是这题就先放着了,下次再打(君子报仇,十年不晚bushi)

训练日志

文章导航

Previous Post: 中山Day6
Next Post: GDNOJ – DAY 6

发表回复 取消回复

要发表评论,您必须先登录。

2025年 12月
一 二 三 四 五 六 日
1234567
891011121314
15161718192021
22232425262728
293031  
« 8月    

2024常州 Class Classic OI Problems Contest cqr的长乐集训2023 CZYZ LOC New Game NOI NOIP Password Protected PM_PK Preview Problems Retrospect Selfmade Qusetion STL The end Training Uneasy Problem 蒟蒻 通报

  • 训练日志
  • 链表
  • 入门
  • 模拟
  • dfs序
  • 并查集
  • spfa
  • 最小割
  • 矩阵树定理
  • 仙人掌
  • BSGS
  • 凸包
  • 回文自动机
  • 递推与动归
  • 堆
  • 莫队算法
  • ST表
  • Treap
  • 树套树
  • 可持久化线段树
  • 初赛
  • 搜索
  • 贪心
  • 深度优先搜索
  • 欧拉图
  • dijkstra
  • 费用流
  • 哈夫曼树
  • kruskual
  • 置换
  • 旋转卡壳
  • KMP
  • 区间动归
  • STL
  • 链表
  • 可并堆
  • sply
  • 主席树
  • 可持久化字典树
  • 算法
  • 动态规划
  • 构造
  • 广度优先搜索
  • 最短路
  • floyd
  • 最大流
  • 虚树
  • prim
  • 筛法
  • 半平面交
  • 字典树
  • 背包动归
  • 基础数据结构
  • 分块
  • 线段树
  • 替罪羊树
  • K-DTree
  • 图论
  • 二分法
  • 迭代搜索
  • 拓扑排序
  • 有上下界网络流
  • 生成树
  • 快速幂
  • 后缀数组
  • 树形动归
  • 哈希表
  • 中级数据结构
  • 平衡树
  • 可持久化数据结构
  • 数据结构
  • 三分法
  • 启发式搜索
  • 图的连通
  • 点分治
  • 博弈论
  • AC自动机
  • 状压动归
  • 单调栈
  • 树状数组
  • 高级数据结构
  • OI资料
  • 数学
  • 高精度
  • 差分约束
  • 树上倍增
  • 素数测试
  • 后缀自动机
  • 数位动归
  • 单调队列
  • 新闻
  • 几何
  • 随机化
  • 二分图染色
  • 树链剖分
  • 欧拉函数
  • manacher
  • 斜率优化
  • 离线处理
  • 信息学奥赛学长风采
  • 字符串
  • 二分图匹配
  • prufer编码
  • 卡特兰数
  • 密码学
  • 决策单调
  • 赛后总结
  • 其他
  • 2-SAT
  • 最近公共祖先
  • 矩阵乘法
  • 记忆化搜索
  • 网络流
  • Link cut tree
  • 排列组合
  • 树
  • 高斯消元
  • 乘法逆元
  • 容斥原理
  • 调和级数
  • 概率与期望
  • 模线性方程组
  • 莫比乌斯反演
  • 快速傅里叶变换
  • 扩展欧几里德
  • 最大公约数与最小公倍数

近期文章

  • 中山纪念中学 Day21
  • 中山集训8.15 LAST DAY+集训小结
  • GDNOJ – DAY 18
  • 中山8.14
  • 2025暑假中山集训Day20——8.14

近期评论

归档

  • 2025年8月
  • 2025年7月
  • 2025年2月
  • 2025年1月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月

Copyright © 2025 泉州一中信息学Blog.

Powered by PressBook WordPress theme