随笔分类 -  单调栈/队列

摘要:考虑二分答案 对于一个区间一定是一边最大一边最小是最优的,还有不够补足L的情况,这个RMQ就好 枚举右端点是最大/最小,单调队列搞搞就完了 阅读全文
posted @ 2019-03-26 21:28 AKCqhzdy 阅读(176) 评论(0) 推荐(0) 编辑
摘要:第二次在bzoj跑进前十竟然是因为在UOJ卡常致死 首先这个题其实就是一个无限背包 一般做法是同余最短路,就是bzoj2118: 墨墨的等式可以拿到30分的好成绩 背包是个卷积就分治FFT优化那么下面20也没问题了 官方做法是大力bitset优化背包并且嘲讽了一波这个做法 再往后需要一个性质参见鏼爷 阅读全文
posted @ 2019-03-21 16:48 AKCqhzdy 阅读(247) 评论(0) 推荐(0) 编辑
摘要:头都烂了怎么头疼啊 考虑先做出对于一个位置以它作为唯一最小值的最远区间,这个可以单调栈上二分搞出来 那么对于一个位置这个区间而言,一定是选择这个区间的最大数是作为最终的唯一最大数最优的 为什么呢?我们可以把区间起止和区间之中的最大数下标弄出来,那么当前位置一定位于某两个弄出来的编号之间,其他数的答案 阅读全文
posted @ 2019-02-22 14:59 AKCqhzdy 阅读(188) 评论(0) 推荐(0) 编辑
摘要:为什么我看了路牌才会做啊QWQ我好菜啊QWQ 对于一个点预处理出符合条件的情况下往后最多能选多少个 为了方便起见我们把偶数行的点全部取反 那么就变成单调栈裸题了 这题数据太水我最后忘清栈都能A-_-! 阅读全文
posted @ 2018-10-31 09:15 AKCqhzdy 阅读(139) 评论(0) 推荐(0) 编辑
摘要:被hhn d飞a 一直不想(gan)做这题 首先先把作文库插入SAM,两两间插个2(这里产生很多细节!空间要开到3,而且深度是要累计的) 对于每个作文,先在SAM跑一遍,求出match数组,该数组表示以当前为结束点往前最长能被自动机识别的长度 二分答案 考虑DP,f[i]表示到第i个位置,最多能够识 阅读全文
posted @ 2018-04-24 10:33 AKCqhzdy 阅读(181) 评论(0) 推荐(0) 编辑
摘要:我发现我是越来越傻叉了。。 本机运行死活过不去数据,拍了贼久就是不出错,一怒之下直接交居然A了。。。 我的做法是先把当前行j-k+1~j列的最值用单调队列搞出来 然后再搞一次行的单调队列的最值 阅读全文
posted @ 2018-04-21 16:24 AKCqhzdy 阅读(169) 评论(0) 推荐(0) 编辑
摘要:题目就是算法啊 求仙人掌图的直径也算是基本问题之一了吧。 简单的想法就是dp,当y是割点,那么直接更新答案没有问题,也就是常规的treeDP求树的直径 但是呢当构环了情况就会有些复杂。 需要用到单调队列维护环里面的ans,不过f还是可以直接继承的。 阅读全文
posted @ 2018-04-04 08:32 AKCqhzdy 阅读(212) 评论(0) 推荐(0) 编辑
摘要:今天早上本来就想填掉这个坑的。。。 然后还是血淋淋的一片。 心态崩了就去做跳蚤 调着调着跳蚤才发现我st表模版写挂了。。。 满怀希望的去把这题改了。 然后还是血淋淋的一片。 今天晚上一怒之下把以前的代码翻出来改st表 wc,A了?A了!。。 cnm 这题常规操作st表求LCP 然后单调栈维护区间 阅读全文
posted @ 2018-04-02 19:24 AKCqhzdy 阅读(148) 评论(0) 推荐(0) 编辑
摘要:发现我做题都是一眼秒算法,然后就不知道怎么做了。 好的这次一眼就是后缀数组了。 然后这个式子前面的可以O(1)公式搞定,其实问的就是sigema(LCP(Ti,Tj)) 然后先写了个暴力,就大概长这样: 可以发现mi是递减的嘛,然后对于一个height值,它所能影响的区间就是前一个比他大值的位置+1 阅读全文
posted @ 2018-03-03 11:14 AKCqhzdy 阅读(219) 评论(0) 推荐(0) 编辑