12 2018 档案

摘要:传送门【题目分析】果然重构才是真理吗。。。。。因为涉及路径操作,所以考虑树链剖分,线段树维护题意中的:1.区间颜色段数。2.区间左右颜色。3.区间覆盖标记。因为线段树的问题主要就是考虑push_up和push_down,此题push_up时记得将区间左右颜色赋值,然后... 阅读全文
posted @ 2018-12-30 15:25 Ishtar~ 阅读(211) 评论(0) 推荐(0)
摘要:传送门【题目分析】nxt数组就是存储的失配位置,所以只用根据题目意思,求出每个位置的nxt并一直跳直到这个前(后)缀长度小于串长的一半即可统计答案,记得+1。【代码~】#includeusing namespace std;typedef long long LL;c... 阅读全文
posted @ 2018-12-28 00:23 Ishtar~ 阅读(146) 评论(0) 推荐(0)
摘要:传送门【题目分析】这个using namespace std;const int MAXN=1e4+10;const int MAXK=1e2+10;const int MAXM=1e5+10;const int INF=0x3f3f3f3f;int n,m,cnt,... 阅读全文
posted @ 2018-12-25 12:18 Ishtar~ 阅读(143) 评论(0) 推荐(0)
摘要:传送门【题目分析】线段树大板题,主要就是靠码量和debug能力。。。既然涉及到区间取反,那么同时记录0和1的信息。对于0,1操作,打上区间覆盖标记即可。对于2操作,打区间取反标记,但注意如果该区间已经打了区间覆盖标记,那么其实取反标记作用只是将0改为1,所以可以直接将... 阅读全文
posted @ 2018-12-22 16:07 Ishtar~ 阅读(187) 评论(0) 推荐(0)
摘要:写在前面蒟蒻太菜了看不懂AC自动机指针版(其实就是不会指针),所以反过头来重新看看Trie树。Trie树是什么?Trie树,又称字典树,其实为前缀树,因为从根节点到每一个节点都会对应原众多字符串的其中一些的前缀。Trie树上可以打标记,含义随题意而变。Trie树也是某... 阅读全文
posted @ 2018-12-22 14:54 Ishtar~ 阅读(161) 评论(0) 推荐(0)
摘要:传送门【题目分析】既然是读入字符串然后与之前的字符串进行匹配,那么肯定是对之前的字符串建立Trie树,这点毋庸置疑。那么就是统计有多个字符串作为他的前缀出现以及该字符串是多少个字符串的前缀,那么就与电话簿一题类似了。我记录经过该点的字符串数量以及以该点作为结束点的数量... 阅读全文
posted @ 2018-12-22 14:32 Ishtar~ 阅读(132) 评论(0) 推荐(0)
摘要:洛谷传送门【题目分析】这题目描述真是令人窒息。3个条件的意思大概是这样:(1).如果有单词作为现在正在填入的单词的后缀但并未填入,将花费n*n的代价。(2).如果没有单词作为当前填入单词的后缀,代价为当前填入单词序号x(3).如果所有作为该单词的后缀的单词之前都已经填... 阅读全文
posted @ 2018-12-22 10:39 Ishtar~ 阅读(184) 评论(0) 推荐(0)
摘要:传送门【题目分析】首先是要最大路径最小,那么很容易想到可以用最小生成树来实现,留下最小的n-1条边,保证了图的联通。然后我们就得到了一颗最小生成树,要询问任意两点路径最大值,就是树链剖分维护就好了。整体较板,但注意做最小生成树的时候因为一开始我存了双向边结果一排序就T... 阅读全文
posted @ 2018-12-15 14:52 Ishtar~ 阅读(201) 评论(0) 推荐(0)
摘要:传送门【题目分析】第一眼看有A,B两个以为是二分图,根据题目各种想办法建边,感觉还是弄不成。推了好久才发现求的就是一个最小割。首先如果令m=0,那么可以建这样一个图:当然贪心就可以了,最后选择的方案也一定是取ai和bi中的较大值,算出来也正是这张图的最小割,也是最大流... 阅读全文
posted @ 2018-12-07 21:02 Ishtar~ 阅读(153) 评论(0) 推荐(0)