题解1328e cf

P1144 最短路计数 题解

Problem 考察算法:拓扑排序 + \(DP\) + \(Dijkstra\)。 题目简述 给出一个无向无权图,问从顶点 \(1\) 开始,到其他每个点的最短路有几条。 思路 先求出 \(1\) 号点到每个点的最短路 \(d_i\) 。 分析每条边 $(x,y) $: 如果 d[x] + 1 = ......
题解 P1144 1144

P2951 [USACO09OPEN] Hide and Seek S 题解

Problem 题目概述 给你一个无向图,边权都为 \(1\) ,求:离 \(1\) 号点最远的点的编号、最远的距离、有几个点是离 \(1\) 号点最远的。 思路 直接用:优先队列 \(BFS\),先求出 \(1\) 号点到每个点的最短路,存到 \(dis\) 数组中,然后再求 \(max(dis[ ......
题解 P2951 USACO 2951 OPEN

PBN三板斧之飞越转弯TF/CF航段

数据库编码在航电系统中的作用是毋庸置疑的,对于编码的理解往往需要结合应用场景来进行分析,必要的时候还需要放到模拟机中进行验证,才能够真正找出飞行程序设计与机载系统的最终解释之间的差别。 今天要聊的飞越转弯衔接TF/CF航段的话题,是在今年一次研讨会议中,让我觉得眼界打开,对个人的程序设计理念都产生了 ......
三板 三板斧 PBN CF TF

Codeforces Round 699 & 772题解

Codeforces Round 699 & 772题解 今天手感确实不错,看来合理的训练配合合理的休息是很重要的。前些日子的努力没白费。不过,怎么说呢,现在的形势不是我把算法题和基础知识做好的就行了,该从系统的角度去作为一个ld去思考问题了,感觉自己还是有点欠缺的,不过我也在积极努力的学习中,希望 ......
题解 Codeforces Round 699 772

[POI2003] Monkeys 题解

[POI2003] Monkeys 题解 正着做貌似不好做,发现猴子是否掉落取决于“最后一根稻草”,也就是最后撒手的那个猴子,那我们考虑倒着把猴子网拼回去。这样,每群猴子掉落的时刻就是与 \(1\) 号猴子连通的时刻。 利用并查集可以维护猴子的连通性,但是怎么更新答案呢?这里用 vector 进行了 ......
题解 Monkeys 2003 POI

CF补题round1

目录luogu P4233 射命丸文的笔记CF1498E Two Houses luogu P4233 射命丸文的笔记 link 如果一个竞赛图含有哈密顿回路,则称这张竞赛图为值得记录的。 从所有含有 n 个顶点(顶点互不相同)的,值得记录的竞赛图中等概率随机选取一个。 求选取的竞赛图中哈密顿回路数 ......
round1 round

CF906C Party

CF906C Party 洛谷:CF906C Party Codeforces:CF906C Party Problem 有 \(n\) 个人,给定他们的初始认识情况,每次操作可以选择一个人,让他当前认识的所有的人都相互认识。 问至少操作几次使得所有人都相互认识,并给出任意合法且次数最少的操作方案。 ......
Party 906C 906 CF

P1126 机器人搬重物 题解

Problem 题目概括 $n \times m $ 的网格,有些格子是障碍格。\(0\) 无障碍,\(1\) 有障碍。机器人有体积,总是在格点上。 有5种操作: 向前移动 \(1/2/3\) 步 左转 \(/\) 右转 每次操作需要 \(1\) 秒。 求从 \(x_1,y_1\) 到 \(x_2, ......
题解 重物 机器人 机器 P1126

P1182 数列分段 Section II 题解

Problem 考察知识点:二分、贪心。 题目描述 对于给定的一个数组,现要将其分成 \(M\) 段,并要求每段连续,且每段和的最大值最小。 思路 二分答案出每段和最大值的最小值,然后贪心检验是否满足。 难点在 \(check\) 上。 策略:每次开始循环,如果没有超范围,就一直选,知道选满为止,求 ......
数列 题解 Section P1182 1182

CF1874C Jellyfish and EVA 题解

题意 给定一个有向无环图,对于任意一条边 \((u_i, v_i)\),有 \(u_i < v_i\)。 定义一次从节点 \(u\) 开始的移动为如下过程: \(\tt{Alice}\) 选择从 \(u\) 出发的且未被删除的一条边。 \(\tt{Bob}\) 在从 \(u\) 出发的且未被删除的边 ......
题解 Jellyfish 1874C 1874 EVA

P5943 [POI2002] 最大的园地 题解

题目传送门 前置知识 单调栈 简化题意 在一个 \(n \times n\) 的正方形内找到最大的由 \(0\) 组成的子矩形的面积。 解法 令 \(f_{i,j}(1 \le i,j \le n)\) 表示从 \((1,j)\) 到 \((i,j)\) 中以 \((i,j)\) 结尾的均为 \(0 ......
题解 园地 P5943 5943 2002

Codeforces 1278D 题解

题目大意 题目大意 给你 \(n\) ( \(1\leqslant n\leqslant 5\cdot 10^5\) ) 条线段 \([l_1, r_1], [l_2, r_2], \cdots, [l_n, r_n]\) ( \(1\le l_i < r_i\le 2n\) )。保证每条线段的端点 ......
题解 Codeforces 1278D 1278

Codeforces 1702G2 题解

题目大意 给出一个大小为 \(n\) 的树,\(q\) 次询问,每次给出一个大小为 \(m\) 的点集,判断是否有一条链覆盖这些点(这条链可以经过其他点)。 \(n,\sum m\leqslant 2\cdot 10^5\) , \(q\leqslant 10^5\)。 提示 提示 1 思考将 $m ......
题解 Codeforces 1702G2 1702G 1702

ABC322G题解

这场的G怎么这么毒瘤啊/kk 听说正解是DP?我爆搜头一个表示不服! statement 找出三元组 \((S, a, b)\) 的数量,使得 \(S\) 在 \(a\) 进制下和在 \(b\) 进制下的差为 \(X\) ,其中 \(0 \leq S_i <(min(a, b, 10))\) 。 首 ......
题解 322G ABC 322

「题解」Codeforces Round 895 (Div. 3)

A. Two Vessels Problem 题目 Sol & Code 签到题 #include <bits/stdc++.h> typedef long long ll; int min(int a, int b) { return a < b ? a : b; } int max(int a, ......
题解 Codeforces Round 895 Div

题解-CF402D Upgrading Array

题意 已知 \(m\) 个坏素数 \(b_i\),定义一个数 \(x\) 的分值 \(f(x)=f(\frac xp)+k\),其中 \(p\) 为 \(x\) 的最小质因数,如果 \(p\) 为坏素数则 \(k=-1\),否则 \(k=1\),初始 \(f(1)=0\),一个数组的分值为其中所有数 ......
题解 Upgrading Array 402 CF

AT_abc254_h [ABC254Ex] Multiply or Divide by 2 题解

打篇题解巩固一下。 题意 给你两个集合 \(A\) 和 \(B\),对于任意 \(A\) 集合中的元素,我们可以进行 \(2\) 种操作:\(a_i\gets \left\lfloor\frac{a_i}{2}\right\rfloor\) 或 \(a_i\gets 2\times a_i\)。问最 ......
题解 254 Multiply AT_abc Divide

UVA12655 Trucks 题解

题目传送门 前言 中文题目可以看 link 。 前置知识 Kruskal 重构树 | 最近公共祖先 简化题意 给定一个 \(N\) 个点 \(M\) 条边的有向图,共有 \(S\) 次询问,每次询问从 \(L\) 到 \(H\) 所有的路径中最小的权值的最大值(多组数据)。 本题即最大瓶颈路问题。 ......
题解 Trucks 12655 UVA

SP16113 SUBTLEBA - Trucks Transportation 题解

题目传送门 前言 本题样例有问题,如果想要样例可以去 vjudge 上。 本题提交后可能会出现 UKE ,建议前往 link 提交,而且本篇题解中所提供的代码也为 link 代码。 前置知识 Kruskal 重构树 | 最近公共祖先 简化题意 给定一个 \(N\) 个点 \(M\) 条边的有向图,共 ......
题解 Transportation SUBTLEBA Trucks 16113

CF1873F Money Trees

思路 要求最长长度,想到可以二分答案。 那么现在需要考虑如何快速验证答案是否正确。 可以 \(O(n)\) 枚举区间左端点,因为有了长度,所以可以直接获得右端点的值,直接验证右端点是否合法。 因为要求区间的每个数都是右边的数的倍数,所以可以提前预处理每个点最远的满足这个条件的右端点,直接判断合不合法 ......
1873F Money Trees 1873 CF

CF1873G ABBC or BACB

思路 首先发现,无论是 AB 变 BC,还是 BA 变 CB,最重要的都是 A,因为 B 的数量不会变化,C 既不是变化所需要的,数量还会变多,只有 A 是需要的并且数量还会变少。 首先思考 AB 变 BC 的情况,什么情况下可以继续变化呢?很显然 AB 前还有 A就可以继续变化,而后面因为 C的出 ......
1873G 1873 ABBC BACB CF

CF1875B Jellyfish and Game

思路 题意大概是两人都有一组数,奇数轮,第一个人可以选择和第二个人交换一个数字也可以不换,偶数轮,第二个人可以选择和第一个人交换一个数字也可以不换。 首先可以猜测,我们每次都应该选择交换对方的最大值和自己的最小值,如果自己的最小值都比对方大的话就不交换。应该比较好想,这里感性证明一下。 如果用的不是 ......
Jellyfish 1875B 1875 Game and

CF1875D Jellyfish and Mex

思路 看到 \(n\) 的范围只有 \(5000\),并且 \(\sum n\) 的范围也是 \(5000\),所以可以考虑 \(n^2\) 的做法。 每次操作肯定都是一次性删完某个数字,如果删除某个数字删一半又去删别的数字,答案肯定会变大。 所以我们可以考虑统计所有数字的数量,记为 \(num_i ......
Jellyfish 1875D 1875 and Mex

CF1875C Jellyfish and Green Apple

思路 首先我们可以考虑把能分的都先分了,再选择去切剩下的苹果。 那么我们只需要考虑苹果数量少于人数的情况,每个人能分的苹果都必然少于目前的单个苹果,所以每个苹果都必须切一刀,那么答案数就会增加当前的数量,再把能分的都分了,重复这一过程,直到分完为止。这样去切一定是最优的。 那么,什么时候无解呢? 因 ......
Jellyfish 1875C Apple Green 1875

题解 CF1875D【Jellyfish and Mex】

显然,除非 \(\operatorname{mex}a=0\),否则不会删除 \(>\operatorname{mex}a\) 的数。而 \(\operatorname{mex}a=0\) 时不对答案产生贡献,因此任意时刻我们都可以忽略 \(a\) 中 \(>\operatorname{mex}a\ ......
题解 Jellyfish 1875D 1875 and

[CF1654F] Minimal String Xoration

Minimal String Xoration 有点智慧但不是特别智慧反正是我达不到的智慧。 打表可以看出长度为 \(2^x\) 的 \(i\oplus k\) 出现次数为 \(2^{n-k}\)。 进一步发现,设 \(f(k,x)\) 当前选取 k 时,数列前 \(2^k\) 的下标。 则 \(f ......
Xoration Minimal String 1654F 1654

CF1575I Illusions of the Desert

prologue 还是太菜了,这个 154 行的树剖20min才敲完。 analysis 首先,处理这个给到我们的这个式子。 \[\max(\mid a _ u + a _ v \mid, \mid a _ u - a _ v \mid) \]我们可以分类讨论: \(a > 0, b > 0\): ......
Illusions Desert 1575I 1575 the

counting题解

\(N,M\le 1e7\) 接着反射容斥,考虑这道题怎么做 如果去枚举不动步数,加上反射容斥,直接T飞了 把-1/0/1操作转换一下,就成了0/1/2 如果没有限制(不能<0或>m),n步方案就是\((1+x+x^2)^n\) 设\(H=1+x+x^2\quad F=H^n\) 那么对两边求导: ......
题解 counting

CF1148G

冒个泡(? rainbow_sjy 老师做法. gcd > 1 无论是 fair 还是 antifair 都无法给出一个很好的限制, 这启发我们建立补图, 即化为 gcd = 1, 此时两种判定分别是: 选出大小为 \(k\) 的独立集 和 选出大小为 \(k\) 且每个点所在联通块 \(\ge 2 ......
1148G 1148 CF

第四周题解

第四周题解 7-1 根据后续和中序遍历输出先序遍历 利用数组保存树的后序遍历和中序遍历,根据后续遍历和中序遍历的特点还原树,并根据先序遍历的顺序,即根左右,利用函数递归输出打印,注意输出格式的正确性。 #include<bits/stdc++.h> using namespace std; cons ......
题解