08 2020 档案
摘要:题目 传送门 题解 这道题对选手对于树的性质的掌握要求较高。 首先,有一种暴力思路,对于每一次加进俩点之后,跑一次 或者是树 求直径,这样时间复杂度是 的,显然有问题。 考虑换一种思路,有一种贪心地求树直径的方法: 从树上任意一点
阅读全文
摘要:题目 传送门 题解 我们应该明白的第一件事——所有的花费只会全部花在一条边上,这是这道题的基础 虽然我知道也没第一时间做出来 下文称这条边为“”. 然后,随便找一个 ,然后我们对于这条 应该会出现在哪里分类讨论: 出现在树边上,显然 应该是
阅读全文
摘要:题目 传送门 题解 这类题目,不多说可以直接上树剖板子,时间复杂度 ,此处不作过多赘述,毕竟重点不是这个方法。 实际上我们有比树剖的俩 更优的解法,但是还是利用线段树。 分析这道题实际要我们干的事是什么: 能够任意改边的颜色; 询问
阅读全文
摘要:题目 传送门 题解 对于 NO 和 CAN 的情况我们其实很好判断,只需要在正向、逆向跑一边 dijkstra 得到从 到某边两点的距离,然后进行判断即可。 最难的情况其实是 YES 的情况,我们想一想这种情况出现的情景——在所有的最短路中,这条边没有可以替代的边,即没有其他相同长度
阅读全文
摘要:题目 传送门 题解 想了半天没想出来 首先需要注意题目中一个十分重要的条件,就是 ,这个条件是我们做出这道题的关键,而我们需要做的,是判断是否存在 使得 是一个严格正矩阵,即使其每一项都大于 . 首先,利用 \(a_{i,j}\ge
阅读全文
摘要:题目 传送门 题解 首先应分析在什么情况下,一条边才只会包含在一个简单环里面。 如果两个环有公共边,对于这两个环的边分情况讨论: 对于公共边,这条边被左、右俩环同时包含,显然不符题意; 对于非公共边,首先他们分别属于自己的环,其次,他们又在一个最外围的大环上; 也就是说,如果两个环有公共边,那么这俩
阅读全文
摘要:题目 传送门 题解 巧妙地将 与图的连通性结合起来的题。 考虑题目的特性: 对于一对组合(指一个人与一只猫),我们只能选择二者之一; 对于组 的人,如果他认识 组的猫,那么 两组只能同时选人(由于猫和人地位相同,其他情况也是一样的); 询问是否有
阅读全文
摘要:题目 传送门 题解 可以想到一个十分简陋的状态:定义 为选到第 个人,队伍的空缺情况为 时的力量最大值,但是这有个问题——那些会变成观众的人该如何决策选还是不选? 对于观众,我们可以有一个十分显然的贪心——在那些还未被选中是队员的人中选前
阅读全文
摘要:题目 传送门 题解 因为所有数字的选择必须连续,也就是说,同一数字的选择越少,其要求越容易达成,并且题目要求任意两个数字的出现次数 都必须保证 ,我们不妨二分数字出现的最小次数 (有少部分数字出现次数为 \
阅读全文
摘要:题目 传送门 题解 有个极为显然的想法:定义 为最后一下划分到 之前的位置,前面的划分使得出现方案为 的合法方案数。 但是 应该开多大?我们可以计算一下:设 为 的二进制长度,那么有 \[ \sum_{i=1}
阅读全文
摘要:题目 传送门 题解 刚开始我以为这是个贪心,然后打了这样一个代码 inline void Solve(){ int pts=1,ans=0; char opt[5];int team; while(m--){ scanf("%s %d",opt,&team); if(opt[0]=='p')ans+
阅读全文
摘要:题目 传送门 题解 这个原子序数是真的狗 首先,看一下那可怜的数据范围:,那么小?考虑直接暴力... 考虑定义暴力函数 dfs(const int now,const int s) 为我们已经处理到目标原子 ,而剩下的元素情况为 的局面
阅读全文
摘要:题目 传送门 题解 首先我们可以将题目转化:在一个 的矩阵中,设立尽可能少的特殊点使得整个矩阵全部被覆盖,其中每个特殊点可以覆盖的区域为它自己以及上下左右的格子 意识到 互相交换,对于答案不影响,那么我们钦定 是较大的那个 由 $1\le m\
阅读全文