- 博客(43)
- 收藏
- 关注
原创 NOIP2012提高组.开车旅行
出发能走到的位置, 对于题目的第一个询问, 扫描一遍所有位置, 计算比值, 对于第二个询问直接模拟会。从起始位置从一个位置出发, 走到的终点是。走过的距离, 这样就可以迅速的计算出询问。找到前面和它差最小的一个数输出。从每个城市走最终能到达的城市。还要预处理走过的距离, 分为。数组, 有下面四个情况,走过的距离, 后两项代表。, 因此可以预处理小。
2025-04-03 16:57:48
599
原创 NOIP2010提高组.引水入城
发现每个水库覆盖的城市必须是连续的, 因为如果不连续, 其他地方的水也无法连接到当前城市, 因此问题就转化为了最少需要多少区间能将最后的城市全部覆盖?也就是经典的区间覆盖问题, 计算每个第一层的城市可以覆盖哪些最后一层的城市可以。
2025-04-02 19:28:06
183
原创 NOIP2018提高组.保卫国王
在原问题基础上还有每个点的限制, 要求某些点必须选择, 某些节点不能选择。将问题回到树形问题, 首先考虑只有一个点选或者不选, 可以将。将问题简化, 如果是一维问题, 可以前后缀分解来做。对于两个点以上情况, 使用。分为两部分, 也是类似于。
2025-04-02 16:06:09
308
原创 NOIP2016提高组.愤怒的小鸟
预处理所有经过两个点的抛物线, 问题就变成。看状态转移, 可以少枚举一维, 时间复杂度。计算, 但是如果列数比较大只能使用。比较小, 因此可以使用。
2025-04-01 14:45:31
583
原创 NOIP2017提高组.宝藏
的所有方案的最小代价, 按照最后一层的状态进行集合的划分, 假设最后一层的状态是。层的点, 也就不需要连接到上一层的点, 因此我们重新考虑状态表示。的最小代价, 但是时间复杂度会爆炸, 空间也会爆炸, 需要优化。, 因为最后一层状态也要取决于上一层状态, 上一层状态是。, 因为需要连最短边, 因此其实也是连接到。, 求代价的最小值, 直接想法是。, 但是我们考虑是否可以连到前面。
2025-03-31 19:21:16
678
原创 NOIP2016提高组.换教室
因为只能在最开始的时候决定每节课的教室是否更换, 因此每个教室之间的概率是独立的, 也就是说总的。是否更换, 每一门课程更换教室的概率是不同的, 独立计算期望相加。门课程的教室并且当前这门课程的教室未更换的所有方案,代表更换了当前这门教室的所有方案。
2025-03-31 16:04:13
223
原创 ABC399.E题解
首先考虑是否有解, 然后再考虑最小操作步数, 观察什么情况下无解, 如果对于。一定无解(因为两个相等字符无法变为不同的字符), 假设有两个字符串。使得两个字符串相等, 因为无论变换哪个字符, 都会使得串中出现。, 然后变后面的字符, 最后换回来, 类似于。是可以的, 因为可以。
2025-03-31 15:14:33
238
原创 NOIP2018提高组.货币系统
集合的其他数字表示, 也就不是最优解, 矛盾, 因此最优解。出来, 如果可以不选择, 否则选择, 也就是完全背包问题。将原集合进行从小到大排序, 对于没个位置检查。可以有最优解表示出来,反证法, 假设存在一个。表示为如上形式, 因为。凑出来, 因此可以将。
2025-03-30 15:29:20
761
原创 NOIP2014提高组.飞扬的小鸟
数, 当前状态可以由上一个位置的状态转移,的第二项开始的部分类似, 可以记为。优化掉一维, 时间复杂度变为。注意到从第二项开始的部分和。不难发现状态可以表示为。转移, 计算时间复杂度。必定超时, 因此需要将。, 状态转移方程转化为。
2025-03-30 14:25:08
982
原创 NOIP2007提高组.矩阵取数游戏
之间是独立的, 因此可以求出每一行的最大值, 然后行与行之间最大值相加, 就是总的最大值。对于行内来说, 每次可以选取左边或者右边, 可以使用**区间。, 或者高精度加法处理结果。**求解, 时间复杂度。的最大范围, 可以使用。, 因为列的最大值是。
2025-03-29 14:53:02
551
原创 2019 CCF CSP-S2.Emiya 家今天的饭
核心方法总得方案数减去不合法的方案数, 首先考虑前两个。个食材出现的次数减去其他食材出现的次数为。个食材的所有方案, 类似于。个烹饪方式, 对于第。
2025-03-28 16:14:12
592
原创 ABC398题解
UNIQUE VISION Programming Contest 2025 Spring (AtCoder Beginner Contest 398)
2025-03-24 20:33:32
707
原创 FFT快速傅里叶变换原理及实现代码
求两个多项式乘积或者卷积, 也就是将问题转化为。值, 将区间分为左右两份, 第一个区间预处理。, 非常方便, 因此目标就变为如何快速的将。本质是基于分治算法, 每一层时间复杂度。, 在点表示法计算完结果后, 再。将原式的奇偶项分开, 使用换元法。就是求卷积, 直接求时间复杂度。, 然后就可以根据这两个值计算。方向坐标相乘即可, 也就是。将点表示法快速的求出原来的。, 在函数图像上任意取。个点, 唯一能确定一个。个特殊点, 如果求点的。次单位根, 一般来说将。, 第二个区间预处理。, 计算原多项式系数。
2025-03-24 13:12:29
688
原创 ABC392题解
如果正着做, 插入不好操作, 平衡树操作, 如果倒着做, 插入第。而且没说两个骰子只有一个点数相等, 下面做法有遗漏情况。, 如果这个位置被占用将其改为。, 初始化树状数组每个位置。, 寻找从左往右的第。的位置, 时间复杂度。
2025-03-23 21:44:46
867
原创 网络流基本概念及实现算法
对于一个有向图, 抽象成水管里的水的模型, 每根管子有限制, 计为GVE对于任意无向图, 都可以将反向边转化为上述形式如果一条边不存在, 定义为容量为0, 形式上来说就是cuv0。
2025-03-18 12:00:05
677
原创 ABC397题解
求根公式直接求解一元二次方程, 时间复杂度。, 代表从后面开始向前的不同数字的个数。, 因此第一项是常量, 第二项必须在。因为求最大值最小, 因此考虑二分答案。表示区间个数, 对于每一项添加一个。一样枚举分界点, 那么时间复杂度。, 都计算出这样一个数值, 对于。线段树维护该数组, 时间复杂度。修改了一条边, 相当于将这条边。上述数组会产生什么样的变化?, 当前数有没有变化取决于。, 具有一个二分的性质。, 至少需要修改几条边。, 换言之, 至少需要。题是切一到的最优方案。, 因此就是求最大流。
2025-03-17 16:44:34
911
原创 Acwing157周赛题解
的位置开始向前, 一定是最优进位方式, 如果从后面进位结果一定没有当前进位好。的情况就是计算完后还向前进一位, 因此需要将原字符串前面。将情况分为两类, 因为是两位数, 因此看个位, 如果。, 因为区间中元素都是正的, 因此。基础线段树之单点修改, 区间查询。删除某个数后求最大子段和。维护区间总和到代表元素上。, 舍去, 否则进位。并且每次进位最多一次。
2025-03-15 21:49:11
562
原创 C++严格代码规范
严格下划线命名法, 适当缩写行rowrowrow列colcolcol体积volvolvol或vvv前缀和sss动态规划数组f[i][j]f[i][j]f[i][j]图论当中点对(u,v)(u, v)(u,v), 如果有一个点命名为uuukmpkmpkmp算法模式串匹配数组左边界右边界l,rl, rl,r左儿子右儿子ls,rsls, rsls,rs栈stackstackstack队列qqq, 队头队尾h,th, th,t并查集数组fafafa一般来说nnn代表数量, mmm代表边数或
2025-03-15 14:32:32
523
原创 图论缩点问题
问题描述: 给定无向连通图, 问至少在几个位置设置出口, 使得无论任意一个点坍塌其余所有点都能走到出口位置。将所有叶子结点都连接起来, 该图一定是无向连通图, 也就是没有任意一个点是桥。情况, 如果当前连通块有割点, 那么需要进行缩点, 然后统计每个。用哈希表管理重边的情况, 对边的两个节点做哈希映射, 每个集合由。, 也就是删除当前点后所在连通分量被分割为的数量?算法求割点, 将当前位置分为是根节点和不是根节点。, 如果一个出口坏掉必须还有一个出口。将原图缩点后, 变为一棵树,
2025-03-15 14:20:51
843
原创 Acwing158周赛题解
最多的链, 对于链以外的点的变化次数一定不能大于链两端的变化次数, 如果大于, 那么该点所在的分支就会替代原来的链。那么如果剩余两部分在同一分支, 由于回溯过程是从子节点到父节点进行的, 也可以找到,从黑色点只能到黑色点, 从白色点只能到白色点, 最少操作多少次, 将树变成同一种颜色。如果剩余两部分不在同一个分支, 那么由上图一定能找到答案, 因为回溯的过程是独立的。, 因此定义树的边权, 如果边的两端颜色相同边权为。段与段之间都是独立的, 因为没有环, 将。将问题细分, 将问题分为。
2025-03-14 17:13:19
527
原创 Acwing159周赛题解
具体来说, 假设答案弹第一个队列的第一个元素和第二个元素, 那么顺序是可以。次的最大价值, 那么问题就变成了每次选择一个队列弹出并且最大价值是多少。, 因为不能有重复方案因此每次分割线都到换到其他位置。将每个队列看成一个物品组, 问题转化为分组背包问题。因为是每次选择弹出队列的队头或者队尾, 观察到。因为每次从队头或者队尾弹出, 因此。的区间, 在用总和减去中间位置的和。, 那么可选位置位置的数量是。每次重组, 相当于把环上的。步进行划分, 时间复杂度。, 因此可以枚举长度为。, 可选择的位置数量是。
2025-03-14 12:56:58
845
原创 Acwing161周赛题解
原来是暴力枚举所有非互质数, 现在可将整个集合进行划分, 划分成与。, 时间瓶颈在试除法分解质因数, 或者使用筛法优化, 时间复杂度。, 因为前后奶牛的顺序可以任意调整, 因此概率为。的最大值, 这样处理后状态转移方程转化为。, 如果所有奶牛都能上车进行特判。将问题集合进行分类, 将集合。将集合继续进行划分, 前面有。不互质的数的位置一定至少与。的方案数, 发生的概率就是。发现后面的式子是组合数倒数。需要优化, 如何找到。
2025-03-13 15:02:22
1029
原创 Acwing163周赛题解
因为有四个朋友, 但是三个是已知的, 因此将三个已知的朋友去掉剩下一个就是下一个奶牛位置, 因此是可以递推的。以任意一头奶牛开始, 读入的时候讲所有奶牛的朋友读入, 如果第一头奶牛的所有朋友确定, 也就是上图中。初始的时候节点指向自己表示未被淘汰, 如果淘汰一个奶牛, 那就将该位置指向下一个位置,奶牛之间有朋友关系, 相邻奶牛是朋友 之间隔了一个奶牛也是朋友。, 如果不合法枚举下一个位置, 因此最开始直接枚举。, 每个节点只会被考虑一次, 因此时间复杂度是。四个位置, 如果想知道下一头奶牛位置,
2025-03-13 11:11:45
664
原创 牛客小白月赛111
存储每个字符串出现的次数, 因为只能更改一次因此如果不满足条件就缩减窗口大小。数字三角形模型, 多加一些边界, 如果某位置在某时刻变为石头, 那价值就是。贪心, 因为只有两个邪恶英雄合并有收益。, 这样该位置一定无法到达。滑动窗口, 建立一个。
2025-03-11 22:19:45
168
原创 算法常用数学知识
线性筛质数Acwing1292.哥德巴赫猜想Acwing1293.夏洛克和他的女朋友每一条边都是从质数连到非质数, 因此是二分图Acwing195.质数距离寻找在区间[l,r][l, r][l,r]之间, 相邻质数差值最大和最小的一对范围比较小的时候, 直接筛出质数, 然后在区间中进行扫描即可, 但该题数据范围非常大, 因此不能直接扫描先找出[1,50000][1, 50000][1,50000]所有的质因子, 对于全部区间的数字, 如果该数字是合数, 必然存在一个[1,50000][1, 50000
2025-03-11 11:35:51
1016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人