随笔分类 -  OJ---Luogu

摘要:解题思路 设置两个二维数组 $f$ 和 $g$,含义如下。 $f[l][r]$ 表示在期望得到的队形中 $l\rightarrow r$ 这段区间初始队形排列的方案数,并且最后一个加入进去的是第 $l$ 个人。 $g[l][r]$ 表示在期望得到的队形中 $l\rightarrow r$ 这段区间初 阅读全文
posted @ 2018-09-02 08:45 Mystical-W 阅读(157) 评论(0) 推荐(0)
摘要:解题思路 看到下面很多人都在说什么遇到了之后要不要背着走,其实根本不需要,同样的我也是跑了三遍$SPFA$,求出了以$1$为起点到个点的$dist$,和以$2$为起点到个点的$dist$,还有以$n$为起点到个点的$dist$。 之后直接枚举两头牛在哪里相遇,相遇之后一起背着走的路程乘以$p+$相遇 阅读全文
posted @ 2018-08-17 17:06 Mystical-W 阅读(294) 评论(0) 推荐(1)
摘要:解题思路 这是一道最短路题目,不知道大家有没有做过玛丽卡这道题目,如果没做,在做完这道题之后可以去拿个双倍经验哦 先求出一张图中的最短路径,并将其记录下来,我们首先思考:要有增量的前提是新的最短路径比原先的要短,那就好办了,我们枚举将最短路径中的每一条边都翻倍,再跑最短路。这样的出来的路径去一个最大 阅读全文
posted @ 2018-08-17 15:05 Mystical-W 阅读(406) 评论(0) 推荐(1)
摘要:解题思路 用线段树做这个就不用说了吧,但是要维护的东西确实很神奇。在每一个节点上都维护一个$lbkt$,表示这个区间上最靠左的右括号的位置;一个$rbkt$,表示这个区间上最靠右的左括号的位置。还有一个$sum$,表示这段区间(除去左右端点)上有几段完整的木棒。 注意如果一个区间内没有左右括号的话, 阅读全文
posted @ 2018-08-16 14:35 Mystical-W 阅读(181) 评论(0) 推荐(0)
摘要:解题思路 用Tarjan先缩点,缩完点之后得到了一张新的图,在这张新的图上统计入度。只有入度为0的点需要刻一张光盘 附上代码 阅读全文
posted @ 2018-08-12 18:08 Mystical-W 阅读(163) 评论(0) 推荐(0)
摘要:解题思路 数据范围不是很大,那应该不是那些普遍的图论的算法。考虑搜索,用暴力解决。从1到N枚举每一个点的位置,搜索这个点事选还是不选。如果在这个点之前选到的点中又和他冲突的点,那就不选,要么就选。 附上代码 阅读全文
posted @ 2018-08-12 18:03 Mystical-W 阅读(430) 评论(0) 推荐(0)
摘要:解题思路 要保证图是强连通的,用因为给出的边全部都是双向边。考虑树形的结构,在一棵树上的$N$个节点一定是强连通的。他们都能够互相到达。又要保证树上的$n-1$条边中的最长的一条边最小。那就用Kruskal求一个最小生成树,找出其中的最长边,平方就是答案 附上代码 阅读全文
posted @ 2018-08-12 17:58 Mystical-W 阅读(334) 评论(0) 推荐(0)
摘要:解题思路 不难看出,在所有给定的关系中存在着时间上的先后顺序,那么就会想到用拓扑排序进行求解,在拓扑排序的同时将时间线上最后完成的点记录下来。这就是答案 附上代码 阅读全文
posted @ 2018-08-12 17:54 Mystical-W 阅读(154) 评论(0) 推荐(0)
摘要:解题思路 显然相邻的两个点是不能够同时存在河蟹的,那就对每两个相邻的点进行染色操作,一个染成黑点,一个染成白点。一个很容易想到的事实就是如果在染色的过程中对某一点的操作和之前染的色冲突,那么河蟹就无法成功阻拦老曹刷街 附上代码 阅读全文
posted @ 2018-08-12 17:50 Mystical-W 阅读(139) 评论(0) 推荐(0)
摘要:题目大意 给定$n$个点和$m$条边,这$m$条边其中有一条是不能走的,但不知道是哪一条,要求求出从$1$到$n$的最短路花费的最大时间。 解题思路 先求出一个最短路,将其路径记录下来。然后枚举删掉最短路中的每一条边,再跑最短路,答案取其最大值 那么怎么记录路径呢?引入一个前驱数组$pre$,表示节 阅读全文
posted @ 2018-08-09 10:22 Mystical-W 阅读(1043) 评论(0) 推荐(0)
摘要:解题思路 这一眼看上去就知道要求最大连通分量。用Tarjan算法进行求解,关键就是怎么按照字典序输出。从Tarjan的搜索顺序来看,搜出来的东西就是按照字典序来的。越往后面的字典序越大。 所以我们直接将最后一次更新时的连通分量输出就行了 附上代码 阅读全文
posted @ 2018-08-07 20:19 Mystical-W 阅读(167) 评论(0) 推荐(1)
摘要:解题思路 既然广义斐波那契,而且数据范围这么大,那么我们使用矩阵快速幂来进行求解。大家都知道斐波那契的初始矩阵如下 $$\begin{bmatrix}1&1\\1&0\end{bmatrix}$$ 那么这道题我们怎么推矩阵呢?先确定目标矩阵如下 $$\begin{bmatrix} F_n & F_{ 阅读全文
posted @ 2018-08-06 08:49 Mystical-W 阅读(204) 评论(0) 推荐(0)
摘要:吐槽一下 我开了$ O2$优化结果跑的更慢了什么鬼???!!! 我怕不是吸了一口 不要脸的放上我的博客,欢迎大家 "前来面基" 题目大意 给定一棵有$n$个节点的树,树中有${n 1}$条边,每条边花费的价格是这条边两侧的点的数量的差的绝对值和这条边长度的积。求这棵树的总花费。 解题思路 以节点$1 阅读全文
posted @ 2018-08-06 06:11 Mystical-W 阅读(182) 评论(0) 推荐(0)
摘要:YY引言 在NOI2018D1T1中出现了一些很震惊的情况,D1T1可以用最短路解决,但是大部分人都在用熟知的SPFA求解最短路。而SPFA的最坏复杂度能够被卡到$O(VE)$。就是边的数量乘以点的数量,而用SPFA的各位都被恶意数据卡成了最坏情况。100->60。这显然很不划算。是时候祭出我们的堆 阅读全文
posted @ 2018-08-05 09:36 Mystical-W 阅读(662) 评论(0) 推荐(0)
摘要:题目大意 给定两个数$\large n$和$\large k$求$$\large {G(n,k)=\sum_{i=1}^{n}k\ mod\ i}$$。 解题思路 很明显,60分的暴力很好拿,但是数据范围限制了你的想象力。暴力绝对会被卡死。所以考虑有没有规律可寻。 自己手玩了一下数据发现最后$\la 阅读全文
posted @ 2018-08-03 08:46 Mystical-W 阅读(204) 评论(0) 推荐(1)
摘要:思路 如果直接暴力的比较的话,不用想也知道会超时 所以考虑另一种方法,将前缀和的思想运用到hash中。用两个hash,一个从前往后记录,一个从后往前记录,然后枚举哪一位是不相同的,然后删掉这一位,将这一位之前的hash值和这一位之后的hash值相加,存在一个数组hs中,如果两个串的hs值是相等的,那 阅读全文
posted @ 2018-08-02 09:03 Mystical-W 阅读(166) 评论(0) 推荐(1)
摘要:思路 二分答案加前缀和,二分答案自然不难想,就是这个前缀和。。。 用sum_v和sum_w分别记录两组前缀和。记录方式如下 吐槽 我调了很久,知道为什么吗 因为输入l和r的时候输入的l和v,把v的值都改变了,硬是调颓废了半下午 代码 阅读全文
posted @ 2018-07-20 19:52 Mystical-W 阅读(195) 评论(0) 推荐(0)
摘要:思路 看题目中给出的式子,其实就是一半是最长上升子序列,一半是最长下降子序列。那么就需要进行两次DP,第一次求最长上升子序列,第二次求最长下降子序列,然后枚举序列的最高点。这个从这个最高点劈开。维护一个最大的值。到最后有总人数减去最大值 代码 阅读全文
posted @ 2018-07-19 15:12 Mystical-W 阅读(166) 评论(0) 推荐(0)
摘要:思路 显然,所有的边都是有向边。那么一个人能够得到自己的生日的条件便是这个人在一个环中,而且要求的是最小环。那么我们就可以用Tarjan算法求解。不会Tarjan的人可以去看看我另一篇随笔,专门讲的Tarjan我脚地窝写的海星。想看的话可以点这里。还有就是要注意环的大小必须要超过1。。。。 代码 阅读全文
posted @ 2018-07-19 10:23 Mystical-W 阅读(131) 评论(0) 推荐(0)
摘要:思路 动态规划不用说,而且这道题的转移方程非常简单,连我都能推出来。难就难在怎么去优化空间和时间。因为$\large{L\le 10^9}$,直接开数组的话不仅空间会炸的连渣都不剩,而且枚举的时候时间也会炸的连渣都不剩。看了题解后,我感到了世界对我的恶意我好弱鸡。用离散化的方法缩小复杂度。 输入之后 阅读全文
posted @ 2018-07-19 08:39 Mystical-W 阅读(137) 评论(0) 推荐(0)