摘要:
题目大意 给定$n$个点和$m$条边,这$m$条边其中有一条是不能走的,但不知道是哪一条,要求求出从$1$到$n$的最短路花费的最大时间。 解题思路 先求出一个最短路,将其路径记录下来。然后枚举删掉最短路中的每一条边,再跑最短路,答案取其最大值 那么怎么记录路径呢?引入一个前驱数组$pre$,表示节 阅读全文
摘要:
解题思路 这一眼看上去就知道要求最大连通分量。用Tarjan算法进行求解,关键就是怎么按照字典序输出。从Tarjan的搜索顺序来看,搜出来的东西就是按照字典序来的。越往后面的字典序越大。 所以我们直接将最后一次更新时的连通分量输出就行了 附上代码 阅读全文
摘要:
写在前言之前 很早之前我就开始学最基本的线段树操作,最高的只到区间加法。时隔多日才想起来在深入一下,加之很久没有写过线段树的板子,所以写的时候还是比较恶心的 这次主攻的是区间乘法的操作。 前言 对于区间查询这一类问题。如果给定的是一个有序的序列,完全可以使用前缀和求解。求解无序的区间查询是比较常用的 阅读全文
摘要:
解题思路 既然广义斐波那契,而且数据范围这么大,那么我们使用矩阵快速幂来进行求解。大家都知道斐波那契的初始矩阵如下 $$\begin{bmatrix}1&1\\1&0\end{bmatrix}$$ 那么这道题我们怎么推矩阵呢?先确定目标矩阵如下 $$\begin{bmatrix} F_n & F_{ 阅读全文
摘要:
吐槽一下 我开了$ O2$优化结果跑的更慢了什么鬼???!!! 我怕不是吸了一口 不要脸的放上我的博客,欢迎大家 "前来面基" 题目大意 给定一棵有$n$个节点的树,树中有${n 1}$条边,每条边花费的价格是这条边两侧的点的数量的差的绝对值和这条边长度的积。求这棵树的总花费。 解题思路 以节点$1 阅读全文
摘要:
YY引言 在NOI2018D1T1中出现了一些很震惊的情况,D1T1可以用最短路解决,但是大部分人都在用熟知的SPFA求解最短路。而SPFA的最坏复杂度能够被卡到$O(VE)$。就是边的数量乘以点的数量,而用SPFA的各位都被恶意数据卡成了最坏情况。100->60。这显然很不划算。是时候祭出我们的堆 阅读全文
摘要:
题目大意 给定两个数$\large n$和$\large k$求$$\large {G(n,k)=\sum_{i=1}^{n}k\ mod\ i}$$。 解题思路 很明显,60分的暴力很好拿,但是数据范围限制了你的想象力。暴力绝对会被卡死。所以考虑有没有规律可寻。 自己手玩了一下数据发现最后$\la 阅读全文
摘要:
引言 字符串匹配问题在OI中比较常见,我们可以比较暴力的进行求解,这样的时间复杂度为$O(n^2)$,但这种方法并不比适用与大部分情况,因为它太慢了。于是就有三个$dalao$提出了更加快速的方法来解决这个问题。他们三个的名字的首字母分别是K、M、P,所以这种算法就简称为KMP算法。 KMP算法 K 阅读全文
摘要:
思路 如果直接暴力的比较的话,不用想也知道会超时 所以考虑另一种方法,将前缀和的思想运用到hash中。用两个hash,一个从前往后记录,一个从后往前记录,然后枚举哪一位是不相同的,然后删掉这一位,将这一位之前的hash值和这一位之后的hash值相加,存在一个数组hs中,如果两个串的hs值是相等的,那 阅读全文
摘要:
思路 二分答案加前缀和,二分答案自然不难想,就是这个前缀和。。。 用sum_v和sum_w分别记录两组前缀和。记录方式如下 吐槽 我调了很久,知道为什么吗 因为输入l和r的时候输入的l和v,把v的值都改变了,硬是调颓废了半下午 代码 阅读全文