divisor 1864c chain cf
CF1801D The way home
原题 翻译 非常好的一个题,有两种做法 方法1:flody+dp 首先我们确定一个最优行走方案:从 \(1\) 号节点赚到足够钱后通过最短路到达 \(x_1\) ,在 \(x_1\) 赚够足够钱后到达 \(x_2\) ,在 \(x_2\) 赚够足够钱后到达 \(x_3\) ,如此往复后到达终点 现在 ......
CF1106D Lunar New Year and a Wander 题解
CF1106D 题解 暑期学校军训第一天模拟赛的题,相对而言比较简单 题意: 题意其实很简单,就是有一个无向图,需要你从\(1\)号节点出发,然后一次遍历所有的点,输出其中字典序最小的遍历 思路 说说思路吧,这题既然要遍历图上所有点,那首先就会想到 \(\texttt{BFS}\) 或 \(\tex ......
CF1710D Recover the Tree
题目链接 一个比较显然的思路就是:我们按照右端点从小到大的顺序(右端点相同按左端点从大到小)去考虑每个好的区间。 由于是连通性问题,不难想到用并查集去实时维护连通性。 根据定义,一个好的区间必定对应了一个连通块;我们考虑的是好的区间,所以当前并查集中的每个连通块必定都是一个区间。而在加入某个点前,这 ......
CF1862G The Great Equalizer
题目链接 先不考虑修改操作。 直接模拟题目意思,可以发现最后留下的一定是最小的数字(因为相同的数每次会保留第一个)。我当时是顺着这个思路做的题目,现在想想反过来想好像会让问题变得更简单,即认为每次保留最后一个相同的数字。 那么现在每次留下的就是最后一个数字,显然每次操作会让这个数字加一,只需要考虑一 ......
CF1857G Counting Graphs
题目链接 考虑每条非树边的取值,显然不能小于等于该边与树边形成的环中的最大值(当然这条非树边也可以不存在),所以每条非树边的取值范围就是 \(S - max(w) + 1\) (\(+1\)的原因是该边可能不存在)。 暴力枚举肯定会超时,考虑优化。 发现 \(kruskal\) 算法获得最小生成树的 ......
CF662C
题面传送门 description 给定一个 \(n\times m(n\le 20,m\leq 10^5 )\) 的 01 矩阵,你可以把若干行的 01 反转,再把若干列的 01 反转。求若干操作后可能的最少的 1 的个数。 solution 显然操作相当于每行每列要么取反一次,要么不取反。 行数 ......
CF877F 题解
CF877F 题解 更好的阅读体验 提供一个扫描线 + 根号分治做法。 首先,可以把题目的条件转化成求 $sum_r-sum_{l-1}=k$ 的区间数。 考虑扫描线,当区间的右端点从 $r-1$ 移动到 $r$ 时,新增的区间的左端点就是所有满足 $sum_{l-1}=sum_r-k,l\le r ......
CF986F 解题报告
显然要关于 \(k\) 离线。 对于固定的 \(k\),关于 \(k\) 的质因子的个数讨论: 如果 \(k\) 是形如 \(p^\alpha\) 的素数幂 只需判断 \(p|n\) 即可。 否则 我们可以跑类似同余最短路。 当 \(\min p_i\) 很大的时候,过不去。 但是,极限数据只能在形 ......
题解 CF1257G【Divisor Set】
problem 我们说一个集合 \(D\) 是一个好的集合,当不存在集合中的两个不同元素 \(a,b\) 使得 \(a\) 是 \(b\) 的约数。 给定一个超大整数的素数表示形式 \(N = \prod_{i=1}^n{p_i}\),要求从它的所有因子中选择尽可能多的元素组成一个好的集合。 问这个 ......
CF1267I
有一种很玄妙的做法,非常简洁。 我们考虑每两个为一组,令每对小的构成的集合为 \(S\), 另一个为 \(T\)。 令 \(S\) 里最大的下标为 \(x\),和其一对的另一数的下标为 \(y\)。 容易发现 \(y\) 一定在答案里。 proof:我们先钦定 \(T\) 为答案,再进行替换,发现一 ......
题解 CF1873H Mad City
题意描述 马塞尔和瓦勒里乌(Valeriu)所在的疯狂城市由 \(n\) 栋建筑和 \(n\) 条双向道路组成。 马塞尔和瓦勒里乌(Valeriu)分别从 \(a\) 号和 \(b\) 号建筑开始。马塞尔想赶上瓦勒里乌(换句话说,与他在同一栋楼里或在同一条路上相遇)。 在每次移动过程中,他们都会选择 ......
CF1842F Tenzing and Tree 题解
Tenzing and Tree 感觉很典型的题,就是树的重心+绝对值等式 解法: 以每个点 \(i\) 为根分别 \(bfs\) ,得到一个距离数组 \(dis\) ,取前 \(k\) 个值的权值为和,更新 \(w[k]\) 的值, \(n\) 个点分别为根,更新 \(n\) 遍之后,得到 \(w ......
[CF1229E]Marek and Matching
This is a harder version of the problem. In this version, \(n \le 7\).Marek is working hard on creating strong test cases to his new algorithmic probl ......
CF1466E Apollo versus Pan
原题 翻译 xjk:降智题。orz \[\begin{align} \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{k=1}^{n}(x_i \ \operatorname{and}\ x_j)\times(x_j\ \operatorname{or}\ x_k) &= \sum ......
CF842A Kirill And The Game
如果考虑 \([x,y]\) 中什么位置能乘到 \([l,r]\) 就比较麻烦,简单的做法是考虑 \(l\) 和 \(r\) 对应到 \([x,y]\) 中的位置。左边界至少是 \(\frac{l-1}{k}+1\),右边界至多是 \(\frac{r}{k}\),判断一下与 \([x,y]\) 是否 ......
CF1467B Hills And Valleys
修改一座山可能改变其两侧山的类型。贪心地考虑,要么是修改成其左侧山的高度要么是修改成其右侧山的高度,这样能够在使得当前山不成为山峰和山谷的同时让两侧的山尽可能不成为山峰和山谷。如果不在左右两座山高度之间,那一定是山峰或者山谷,修改后肯定不劣。 修改第一座山或最后一座山也是无意义的,完全可以修改第二座 ......
CF49E 题解
problem & blog。 提供一个逻辑顺畅的思路(然而做法相同的)。 手玩样例,Sample1 是 \(\texttt{ac}\to[\texttt{a}][\texttt{baba}]\) 与 \([\texttt{a}][\texttt{ba}]\)。很显然样例有分段性质,所以 DP,\( ......
[题解] CF1873H - Mad City
CF1873H - Mad City 知识点:基环树找环 题意 给定一张具有 \(n\) 个点 \(n\) 条边的无向图。现在有两个人,第一个人在 \(a\) 点,第二个人在 \(b\) 点,第一个人要追到第二个人。 两个人每一回合都同时进行操作,要么停留在当前位置,要么走邻接的下一个点。同时,第一 ......
CF38H 题解
problem & blog。 远古场翻到的一个不错的题,提供一个好想很多的做法。 求出任意两点的路径在全部路径中是第几个。然后随便找两个人,钦定他们是 Au 吊车尾与 Cu Rank1。这样子就可以直接求出全部人可以是否可以拿 Au Ag Cu 了。 然后就是傻子 DP 了,往状态里塞 Au 与 ......
CF1873F
二分+前缀和。 要求使得区间和小于 \(k\) 的子区间长度,显然可以二分处理。二分区间长度,枚举区间左端点,check 两项内容:区间是否合法(符合 \(h_i \mod h_{i+1}=0\) ),区间和是否小于 \(k\)。对于当前区间长度,只要有一个区间满足条件,即返回真。 区间和可以通过前 ......
CF1738F Connectivity Addicts
题目链接 这类题着重于抓住充分条件进行构造。 解决这道题,就得抓住题目中最为特殊的条件:\(s_c\leq {n_c}^2\)。我们不难找出一种关于它的充分条件:\(\max_{u\in S_c}d_u\leq n_c\)。 尝试在此充分条件下设计构造方法:不妨按照 \(d_u\) 进行排序,之后从 ......
CF797E Array Queries
这种位置弄来弄去的题一般就分两种,倍增预处理或者根号分治。 现在步长种类很多,只能考虑后者,对步长 \(k\) 进行根号分治: \(k>\sqrt n\),直接暴力,最多跳 \(O(\sqrt n)\) 次。 \(k<\sqrt n\),最多有 \(O(\sqrt n)\) 种 \(k\),预处理它 ......
CF1872E Data Structures Fan
考查异或的基本性质。 对于操作2,用两个变量 \(X_0,X_1\) 记录 \(s_i=0/1\) 位置的异或和,在查询时直接输出即可。那么,在操作 1 如何更新 \(X_0,X_1\)? 如果操作 1 只改变一个数,比如将 \(s_i\) 从 \(0\) 改为 \(1\),那么我们只需将 \(a_ ......
CF311B Cats Transport
原题 翻译 感谢\(xjk\)大佬推荐的好题 这里只说前半部分的转化,后半部分直接暴力\(dp\)+斜率优化即可 我们考虑如何朴素\(dp\),我们发现一个猫的要求时间是他结束游玩的时间\(-\)他所在的位置,及\(T_i - D_{H_i}\) 我们把猫咪按照\(T_i - D_{H_i}\)从小 ......
CF1805D A Wide, Wide Graph
原题 翻译 如果距离越长越优的题要考虑树的直径 我们发现这题对于一个\(k\),我们对于每个点,让他从最远的点连过来得到的图的连通性等价于原图的连通性 而对于一个点最远的点就是他到直径两个端点的距离 因此我们求出树的直径,然后对于两个端点\(dfs\),求出他们的深度,对于每个点,距离他们最远的距离 ......
CF671D Roads in Yusland
1D8 ya。 设 \(f_{u,i}\) 表示覆盖了 \(u\) 子树并且向上覆盖到了深度为 \(i\) 的最小代价。 考虑合并儿子 \(v\): \[f'_{u,i}\gets \min\left(f_{u,i}+\min\limits_{j=1}^nf_{v,j},f_{v,i}+\min\l ......
[CF19E]Fairy 题解
[CF19E]Fairy 题解 给出一张无向图,求删除这边后此图变成二分图的所有边。 思路 首先考虑二分图的真谛是什么,可以发现,如果一个图里面没有奇环,那么他就是一个二分图,实际上,这是充分必要的。 接着结合 DFS 树思考,可以发现: 对于树上的所有回边,他能产生贡献,当且仅当这棵树里只有一个奇 ......
CF436C
对于这种贡献和整体数量相关的问题,确实可以考虑和最小生成树挂上勾…… 总体来说还是有点怪的,考虑转化为图论模型,物品两两之间建边,权值为相互转移的代价,再新建一个节点,每个点向其连边,权值为其直接代价,因为第一个必须要直接转移,所以跑一遍 MST 就行了。 总结一下 MST 的一些性质,贡献没有方向 ......
[CF1819D] Misha and Apples
Misha and Apples 只能做做评分虚高的题了,头痛浪费了一节晚自习。 但是为什么机房的同学们都觉得2500~2800算水题呢? 最终的答案一定是 \([S_1,S_x]\) 被清空,\([S_{x+1},S_n]\) 被全部放入集合。 若 \(\exists i\in[x+1,n],k_ ......