摘要: 思路 看题目中给出的式子,其实就是一半是最长上升子序列,一半是最长下降子序列。那么就需要进行两次DP,第一次求最长上升子序列,第二次求最长下降子序列,然后枚举序列的最高点。这个从这个最高点劈开。维护一个最大的值。到最后有总人数减去最大值 代码 阅读全文
posted @ 2018-07-19 15:12 Mystical-W 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 思路 显然,所有的边都是有向边。那么一个人能够得到自己的生日的条件便是这个人在一个环中,而且要求的是最小环。那么我们就可以用Tarjan算法求解。不会Tarjan的人可以去看看我另一篇随笔,专门讲的Tarjan我脚地窝写的海星。想看的话可以点这里。还有就是要注意环的大小必须要超过1。。。。 代码 阅读全文
posted @ 2018-07-19 10:23 Mystical-W 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 思路 动态规划不用说,而且这道题的转移方程非常简单,连我都能推出来。难就难在怎么去优化空间和时间。因为$\large{L\le 10^9}$,直接开数组的话不仅空间会炸的连渣都不剩,而且枚举的时候时间也会炸的连渣都不剩。看了题解后,我感到了世界对我的恶意我好弱鸡。用离散化的方法缩小复杂度。 输入之后 阅读全文
posted @ 2018-07-19 08:39 Mystical-W 阅读(124) 评论(0) 推荐(0) 编辑