09 2021 档案
摘要:点双连通分量 定义 点双连通分量的定义有很多种,比如:“图中任意两不同点之间都有至少两条点不重复的路径。”,“不存在割点的图。”,一般采用前者,这是最初的定义。 两个定义的区别在于一种特殊情况:图中只有两个点和一条把两点连接起来的边。 除此之外,两者是等价的。 模板 模板题 好像没找到以前写的代码,
阅读全文
摘要:定义 边双连通分量是定义在无向图当中的。 边双连通分量的定义是一个不存在割边的子图。 也就是说图中任意两点都可以有两条不重复(边)的路径可以互相到达。 模板 以P2860 [USACO06JAN]Redundant Paths G为例,给出边双的模板:(其实跟有向图的强连通分量求的代码近乎一模一样)
阅读全文
摘要:斜率优化小结 前言 一般来说,我们可以把斜率优化 \(dp\) 对应的可以解决的问题分成这几类: \(x\) 单调且 \(k\) 单调,\(x\) 不单调且 \(k\) 单调,\(x\) 单调且 \(k\) 不单调,\(x,k\) 都不单调。 我们可以只在第一种情况中使用单调队列直接维护做到线性复杂
阅读全文
摘要:题目 CF431E Chemistry Experiment 分析 线段树上二分,二分答案,线段树。 首先,我们的目的是要求出尽可能小的最大体积,这显然是可以二分后直接判断的。 但是这样是 \(2\log\) 的,我们可以直接考虑线段树上二分。 可是这样就需要实数的线段树上二分了吗?并不是。 我们考
阅读全文
摘要:题目 CF1324F Maximum White Subtree 分析 换根 \(dp\) 。 换根 \(dp\) 简单题,刚开始把题目看错了,树看成无向图了。 直接设 \(dp_i\) 表示以 \(i\) 为根,子树的答案,换根也很简单,详细见题解。 (实在是太水不知道该说啥了) 代码 #incl
阅读全文
摘要:题目 CF1156E Special Segments of Permutation 分析 分治,单调栈,笛卡尔树。 分治经典套路了,像这样数点对的都可以考虑分治。(树上就考虑点分治) 同样是经典套路,每次分治时钦定一定是右侧存在最大值或者左侧存在最大值。 然后双指针和一个数组统计即可,具体见代码。
阅读全文
摘要:题目 CF549G Happy Line 分析 排序,性质。 这道题告诉了我们大眼观察法的重要性。 我们发现,无论怎么交换,每一个元素对应的 \(a_i+i\) 总是一个定值。 那么显然交换到最后的最好情况就是所有的值按照从小到大有序。 然后考虑什么情况下无解,显然,如果在最终的序列当中出现了两个相
阅读全文
摘要:题目 CF492E Vanya and Field 分析 首先考虑在怎样的情况下才会重复,设原坐标为 \((x+k_1\cdot dx,y+k_1\cdot dy)\) ,设在 \(k_2\) 步重复,也就是: \[ \large (x+k_1\cdot dx,y+k_1\cdot dy)=((x+
阅读全文
摘要:题目 P1852 跳跳棋 分析 神仙图论题。 首先我们手摸一下样例,发现只有三种跳法,并且如果我们把往两边跳看作是儿子,往中间跳看作父亲,那么原题的所有状态都可以看作一个大二叉树的结点。 询问就相当于是询问两个结点的树上距离。 剩下的就比较简单,注意辗转相除法加速我们跳的过程即可。 代码 鸽了。
阅读全文
摘要:题目 CF506D Mr. Kitayuta's Colorful Graph 给出一个无向图,每条边有颜色,每次询问两点间可以由多少种不同颜色的路径相互到达(要求路径上全是那一种颜色)。 分析 直接开一个 \(\text{unorderedmap}\) ,维护每一个点对应颜色的并查集父亲。 然后考
阅读全文
摘要:题目 CF145E Lucky Queries 给定一个序列,每一个数是 \(4\) 或者 \(7\) ,每次两种操作,翻转一个区间的 \(4,7\) 或者询问这个序列的最长不降子序列长度。 分析 经典的线段树维护的题目。 考虑维护区间内 \(4\) 的个数 ,\(7\) 的个数以及最长不下降子序列
阅读全文
摘要:题目 CF101E Candies and Stones 分析 毒瘤恶心题目。 很明显就是一个 \(dp\) ,时限开这么大就是想让我们直接暴力转移即可。 但是又明显卡了空间,于是考虑直接滚动数组来 \(dp\) ,但是还要输出方案,于是考虑使用 \(bitset\) 来维护转移的方向。 但是还是要
阅读全文
摘要:题目 CF292D Connected Components 给出一个图,每次删除其中一个区间内的边,询问剩下的边构成的图当中的连通块个数。 \(N\le 500,1\le M,K\le 10000\) 分析 维护一个前缀的并查集和后缀的并查集,然后可以考虑每次拿出两段来合并,于是就很容易了。 具体
阅读全文
摘要:题目 CF486B OR in Matrix 分析 首先可以发现,如果有 \(B[i][j]=0\) 那么必然有 \(A\) 的 \(i\) 行和 \(j\) 列都是 \(0\) 。 于是我们可以考虑把这些必须为 \(0\) 的点全部换成 \(0\) ,剩下的能放 \(1\) 就放 \(1\) 然后
阅读全文
摘要:题目 CF484A Bits 给定一个区间,求出这个区间当中二进制表示下 \(1\) 最多的数。 分析 牛逼贪心。 考虑如何得出这个数,直接构造? 因为还要要求最小,似乎并不好直接构造,于是我们可以考虑直接给 \(l\) 的每一位或上 \(1\) ,看能不能行,可以就或上 \(1\) ,不可以就不变
阅读全文
摘要:题目 CF140C New Year Snowmen 给 \(n\) 个雪球,每次从中选出三个半径严格递增的雪球做成雪人,求最多能做多少个。 分析 最开始十分 \(naive\) 地想分成三组来做,然后其实发现只要是选了三个不同种类的,总是可以做一个雪人。 于是考虑贪心,先把尽可能多的选掉同一类雪球
阅读全文
摘要:前言 提供一种不需要并查集的严格线性做法。 其实也差不了多少。 题目 题目链接 分析 题目描述稍微有点复杂,其实我们可以直接看成是这样的问题: 给定 \(m\) 个多米诺骨牌,每个有高度和价值,要求推倒所有的骨牌,求最小代价。(推动的规则见题面最后一段) 显然可以考虑 dp 来做,设 \(dp[i]
阅读全文
摘要:前言 介绍一种无需缩点而直接使用 dfs 树的办法,跑得也比较快。 题目 P4652 [CEOI2017]One-Way Streets 分析 首先我们可以直接跑出 dfs 树,然后考虑所有的返祖边: 考虑差分来做,因为这时一定会构成环,而环上的边无论朝向哪,环上的点都是可以互相到达的,也就是说,环
阅读全文
摘要:CF1391E Pairs of Pairs 题目链接 还是个牛逼构造。 先随便求出一个 \(dfs\) 树,然后显然如果这个树的深度大于 \(\lceil\frac n2\rceil\) ,问题一一定有解。 否则深度 \(\le \lceil\frac n2\rceil\) ,那么考虑怎么配对,我
阅读全文
摘要:CF858F Wizard's Tour 题目链接 牛逼构造。 看到图论题的构造其实首先就可以想一想 \(dfs\) 树,然后呢,我们考虑所有的返祖边: 对于一个点的边个数,我们先暂时不考虑dfs树上到父亲的边,这些边如果是奇数,那么让这个多的边和父亲的对应边匹配,剩下的两两匹配,如果是偶数就不用,
阅读全文
摘要:CF412D Giving Awards 题目链接 直接给所有有矛盾的 \(x,y\) 连边,然后考虑构造一定是 \(y\) 先出现再 \(x\) ,这样做显然满足条件。 但是有个例外是二元环,这里没翻译出来,题目保证没有二元环,所以就这样构造咯。 代码懒得放了,可以看题解。
阅读全文
该文被密码保护。
摘要:题目 求 \[ \large \sum\limits_{i=1}^n\sum\limits_{j=1}^nf(\gcd(i,j))f(lcm(i,j)) \] 其中,\(\large f(x)=\sum\limits_{d\vert x}\mu(d)d\) 51nod2026 Gcd and Lcm
阅读全文
摘要:题目 求: \[ \large A=\sum_{i=1}^n\mu(i^2),B=\sum_{i=1}^n\varphi(i^2) \] BSOJ5655【BZOJ4916】神犇和蒟蒻 分析 首先第一问显然是 \(1\) 。 第二问很容易由结论转化: \[ \large \varphi(nm)=\v
阅读全文
摘要:题目 求有多少种选数方案使得这些数的 \(\gcd\) 为 \(1\) ,值域 \([1,n]\)。 P5218 无聊的水题 II 分析 设 \(f(x)\) 表示选出来的数的 \(\gcd=x\) 的方案数。 那么我们要求的就是 \(f(1)\) ,考虑反演回来求,于是设 \(\large g(x
阅读全文
摘要:题目 求 \(\varphi\) 函数的前缀和。 分析 这么大范围直接杜教筛,考虑具体怎么做,经典套路: 考虑到有 \(\varphi*I=id\) ,于是设 \(g=I\) ,发现剩下的都非常好求: \(id\) 的前缀和就是等差数列求和,\(I\) 的前缀和就是区间长度。 代码 #include
阅读全文
摘要:题目 求 \[ \large \sum\limits_{i=1}^n\sum\limits_{j=1}^mf(\gcd(i,j)) \] 其中,我们定义 \(f(x)\) 表示:\(x\) 的所有质因子的最大次数。 BSOJ5660【BZOJ3309】DZY Loves Math 分析 还是推一推柿
阅读全文
摘要:问题 \[ \large \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) \] BSOJ4129【BZOJ2693】jzptab 结论 结论一: \[ \large \sum_{d=1}^nd\cdot \sum_{k=1}^{\lfloor\frac nd\rfloor}\mu(
阅读全文
摘要:题目 求: \[ \large \sum_{i=1}^n\sum_{j=1}^m(i+j)^k\mu^2(\gcd(i,j))\gcd(i,j) \] \(\large T = 10^4,1 \leq K < 2^{31},n,m\le 10^7\) 题目: P6222 「P6156 简单题」加强版
阅读全文
摘要:题目 求: \[ \large \sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k \] \(1\le n,m,k\le 5\times 10^6,1\le t\le 2000\) 分析 稍微推一下吧: \[ \large \begin{split} &\ \ \ \ \sum_
阅读全文
摘要:题目 Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) pty忽然对这个古老的数列产生了浓厚的兴趣,他想知道:对于某一个Fibonacci数Fi, 有多少个Fj能够整除Fi (i可以等于j),他还
阅读全文
摘要:前置知识 顺序有先后,但是不是完全的次序,建议确认全部都会再食用本篇。 线性筛 详见线性筛 整除分块 详见整除分块 狄利克雷卷积 详见数论函数&狄利克雷卷积 欧拉函数 详见欧拉函数 莫比乌斯函数 详见莫比乌斯函数&莫比乌斯反演 杜教筛 详见杜教筛 基础应用 最基础的一些题目。 基础知识 \(求\su
阅读全文
摘要:题目要求的柿子是: \[ \large \sum_{i=1}^n\sum_{j=1}^n\sigma(ij) \] 小证明: \(i\) 选了的 \(j\) 就必须在“不选集合”中选择“不选”,\(i\) 没选的 \(j\) 的 “不选集合” 中就可选可不选。 这样做显然是一一对应的,而且肯定满足
阅读全文
摘要:简介 狄利克雷卷积是数论函数的重要运算之一,它可以方便我们来描述数论函数之间的关系。 定义 我们这样定义狄利克雷卷积: 如果函数 \(h,f,g\) 满足: \[ h(n)=\sum\limits_{d\mid n}f(d)g(\dfrac nd) \] 那么我们称 \(h\) 是 \(f\) 和
阅读全文
摘要:前置知识 线性筛 详见线性筛 数论函数&狄利克雷卷积 详见数论函数&狄利克雷卷积 欧拉函数 详见欧拉函数 莫比乌斯函数 详见莫比乌斯函数 杜教筛 杜教筛的作用 首先我们要知道,杜教筛是拿来干什么的,其实并没有很高深,就是可以在低于线性时间的复杂度求出积性函数的前缀和。 常见的有很多,比如最常见最简单
阅读全文
摘要:题目 P1829 [国家集训队]Crash的数字表格 / JZPTAB 求: \[ \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) \] 分析 先将式子化简: \[ \large \begin{split} \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) &=\s
阅读全文

浙公网安备 33010602011771号