摘要:
A 已知 \(n\) 边形的一个三角剖分,你可以进行若干次“城市建造”操作,可以选择三个点并新建一个点为这三个点的内心并连边。构造方案,使得城市建造次数最少,且新图可以划分为两棵树。 只需要进行一次城市建造操作,就可以使边数变为 \(2n\),点数为 \(n+1\),显然即可划分。 考虑取出一个三元 阅读全文
摘要:
A 一棵树,对于 \((x,y)\),定义 \(joy(x,y)\) 为通过有限个简单路径两两相连,使得 \(x\) 走到 \(y\) 的最短的简单路径长度的最大值。对于所有 \((x,y)\) 求和。 我们至多只会找两个中转点,对于 \(x,y\) 各找一个。 根据经典结论,距离树上某个点最远的点 阅读全文
摘要:
B 可以将一列的算式看成 \(u\to v\) 的一条边,其中 \(u\) 表示其所需要的进位,\(v\) 表示其进位。 那么不难发现我们要求的是 \(0,1,2\) 三个点,\(0\to 0\) 的欧拉回路个数,其中最后一条边满足都不是 \(0\)。 考虑 best 定理,其中求生成树个数可以直接 阅读全文
摘要:
A 有 \(n\) 透明胶片,其中有若干位置有字符;没有字符的部分是透明;构造一种叠放方式,使得从上往下看构成字符串 \(s\)。有字符的位置 \(\le 2e5\)。 这是一个拓扑序问题。考虑从上往下放,某个胶片能放的条件是其与 \(s\) 不同的位置已经都被放了。 那么考虑记 \(f_i\) 表 阅读全文
摘要:
B 求长度 \(\ge k\) 的区间去掉前 \(k\) 大剩下权值和的最大值。\(n\le 1e5,k\le 100\)。 一个比较暴力的办法就是维护出每个区间的答案,考虑一个位置什么时候被扣掉。 首先计算出左边前 \(k\) 个与右边前 \(k\) 个比 \(a_i\) 大的位置,然后考虑匹配, 阅读全文
摘要:
B \(n\) 次操作,每次操作选择下面三个中的一个:令 \(P\gets P+x_i+S\);\(S\gets S+y_i\);\(D\gets D+z_i\)。 在每次操作后,\(S\gets S+D\)。询问 \(P\) 的最大值。\(n\le 80,x,y,z\le 1e9\)。 由于不可能 阅读全文
摘要:
CF1442D Sum 很显然可以设 \(f_{i,j}\) 表示当前处理了前 \(i\) 个数组,选了 \(j\) 个数的最大值,然而转移需要 \(O(k)\)。 考虑挖掘题目数据元素非降的性质。猜个结论呢? 因为元素是逐渐变大的,所以越往后选就一定越优。所以,至多只有一个数组没有被选完。 这个很 阅读全文
摘要:
B \(n\) 个数,若干次全局加操作,并执行 \(a_i\gets \max(0,a_i),a_i\gets\min(i,a_i)\),操作完查询全局和。 注意到序列一定是连续上升序列-相等-连续上升序列-相等-...的形式,那么考虑用栈维护每个上升区间。 考虑拆贡献到每个区间,\([l,r]\) 阅读全文
摘要:
B 平面上有 \(n\) 个点以及 \(k\) 条未知的平行线,每个点都分属一条线,每条线都有至少 \(2\) 点。给出一种方案。 \(n\le 4e4,k\le 50\)。 每个点分属一条线的条件非常重要。考虑利用鸽巢原理。 考虑取出 \(k+1\) 个没有两对点同斜率的点,那么,至少有两个点在一 阅读全文
摘要:
A 一棵二叉树,相同深度的点位置相邻的有一条边,给出两条根开始的路径,可以向上/左/右/左儿子/右儿子走,问最后走到的两个点最短距离。路径长度 \(\le 10^5\)。 考虑求出两条路径分别走到的位置,用根开始的路径表示,每次向左/向右,用 \(0/1\) 表示。 最后统计答案,两个点一定是走到某 阅读全文
摘要:
C 有 \(N\) 人站在一条数轴上。他们人手一个烟花,每人手中的烟花都恰好能燃烧 \(T\) 秒。每个烟花只能被点燃一次。开始时,只有 \(K\) 号的烟花开始燃烧,当两人位置重叠且其中一人手中的烟花燃着时,另一人手中的烟花就可以被点燃。求至少需要以多快的速度跑,才能使所有人的烟花都曾被点燃。\( 阅读全文
摘要:
A 平面上给出若干个点,求两两点之间曼哈顿距离比欧几里得距离的最大与最小值。 \(n\le 10^6\)。 不难发现最小值求的就是线段斜率最接近 \(0\) 的线段,最大值就把每个点绕源点旋转 \(45\) 度即可。 这个东西考虑按照 \(y\) 坐标排序,\(y\) 相同的按照 \(x\) 排序, 阅读全文
摘要:
B 对于所有 \(x\in[0,n],y\in[0,m]\),求执行 \(x\gets x+y,y\gets x+y\) 若干次后满足 \(x=k\) 的双元组个数。 这个题充分体现我的唐氏。 具体地枚举 \(x,y\) 分别被算了多少次,系数是斐波那契数列,所以项数很少。 然后转化为求 \(k_1 阅读全文
摘要:
nf #34 A 定义两个长度相等的数列相似,当且仅当每个下标对应值在两个数列中的排名相等。 对于一个长 \(n\) 的排列,定义 \(f(A,k)\) 表示有多少长 \(k\) 的排列和 \(A\) 的至少一个子序列相似。 排列 \(A\) 的值是 \(\sum_{k=1}^n [f(A,k)=C 阅读全文
摘要:
nf #33 B 有一棵包含 \(n\) 个节点的有根树,且树的高度不超过 \(100\)。每次操作时可以选择一个节点 \(u\),使其与父节点断开(如果有),成为一颗新树的根节点,然后删除以节点 \(u\) 为根的树中的所有叶节点。 求删除所有节点所需的最少操作次数和通过最少次操作删除所有节点的方 阅读全文