随笔分类 - 题解
摘要:P3092
阅读全文
摘要:CF607B Zuma 不知道为什么你谷会评蓝,这不是很基础的区间DP吗。 Problem - 607B - Codeforces 题意简述 消除回文子串的最小次数。 思路 对于区间\([i,j]\),如果它是回文的,那么消除它所需的次数是\(1\)。 如果它不是回文的,但是\(a[i]==a[j]
阅读全文
摘要:思路 由题可知,在一趟车次的区间内,停靠的站点的等级恒大于不停靠的站点。 因此,对于每一趟车次的区间,给所有停靠的站点向所有不停靠的站点两两连有向边,然后求图中最长的路径长度,就能得到答案。 实现 因为可能出现重边,而且\(n\le1000\),所以在处理车次连边的时候使用邻接矩阵,再改成邻接表。
阅读全文
摘要:解题思路 考虑将直线分组,每组内直线互相平行,任意两组直线间交点数量等于两组内直线数量乘积。 分组操作使用dfs,求出交点数量后加入set去重,输出set大小。 时间复杂度O(2NN2)有点鬼畜但是可以通过。 实现 #include <cstdio> #include <unordered_set>
阅读全文
摘要:一些废话 夜深人静的夜晚,我开了这道题。看起来,完成它是一件轻而易举的事。我想了想,打开Dev-C++,开始写代码。 然而,那时的我还不知道,我踏入了深渊...... 咳咳,中二病犯了,前面的文字请忽略。 思路 题目要求最少操作次数,显然,我们要使用BFS来求解。 对于每个节点,接下来有最多三个子节
阅读全文