摘要:
没办法,学了又忘了,暑假上课没听懂的锅现在要补...... AC自动机的思想: Trie树 + KMP,但是有人称它为"树上KMP",我觉得也蛮形象的。 确实也是这样子的,AC自动机主要就是运用了KMP类似的思想以及操作:"失配指针"(字符串匹配都是运用已知信息来减少无效匹配次数......) 同时 阅读全文
摘要:
吐槽 暑假上的字符串课没听懂几个字,所以现在像在学新算法一样 好像就是在学新算法,不管了 其实讲真的字符串的算法都比较巧妙啊!KMP,AC自动机,Manacher,SAM,这些算法都是思想非常巧妙的,而且代码比较短!所以 很难,学不会 要好好理解 这是本蒟蒻字符串专题学习的第一个算法,为什么不是KM 阅读全文
摘要:
官方题解对于思路的讲述已经非常的清晰了. 分享一个个人心得: 线段树对于左右区间的运用 线段树主要就是妙在它的合并区间功能以及对于一个整块进行分治的思想.你会发现,每次线段树的更新基本上都是基于左右儿子这两个左右区间的.对于可以区间维护的信息(基本上也就是可以分裂成子问题的问题),我们总是每次更新后 阅读全文
摘要:
这道题我爱了! 思路 看到这题目我直接想到了三值偏序,然后我就开始了不归之路 1.把操作按时间排序,就能离线操作了 2.首先读入的时候各个操作已经默认是按时间排序的了,所以不用考虑时间这一维 接着,操作分两种: (1).添加住户(相当于是把这个点的权值加上一个a) (2).查询住户(查询的这个范围是 阅读全文
摘要:
题解:Tarjan + 拓扑排序 + 建图小技巧 观察题目性质,大概就是要Tarjan缩点后通过拓扑排序求出一个一条最长路径(经过的点最多) 难度就在建图这里. 我着重分享一个我的建图技巧: 首先将给出的门按横坐标排序,先处理横门。 如果当前有一个横门,那么我们将它与同一横行的所有边连边,记录下这个 阅读全文
摘要:
这一道题目的考点为二分答案 + 模拟 二分答案我换成了是倍增,因为蒟蒻我怕二分答案写错(害怕二分写错的同学可以跟我一起写倍增啊)。 模拟的时候有一个技巧,就是每次记录一下当前所有物品中第一个没有被搬完的坐标点。 然后大力模拟。 这道题一定要开longlong,写倍增的时初始答案一定要足够大(最好开满 阅读全文
摘要:
这道题目小心细节啊!! 写在前面的话: 我提交了大概16次才A掉这个题,前12次是因为没有特判循环节长度为0(相信有不少人RE是因为这个原因),也就是没有找到循环节,然后我用k去除以循环节的长度,就疯狂RE. 后面几次是因为不小心写挂了一个地方,导致死循环了。 这道题的解题思路: 观察到给出的两个矩 阅读全文
摘要:
题外话: 这道题目的翻译有点小问题,翻译没有说要开文件,但是题目是要求开文件的!我因为这个错了一次,看到错误信息才会看题目发现要开文件: freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); 这是应该开的文件 解题思路: 阅读全文
摘要:
这个题目有好多人倍增求LCA会被卡成80分(包括第一次提交的我,然后,我在万神的教导下,使用了优化版的倍增,直接水过去了.....跑得还挺快,最大点700ms(没有优化前1500ms),好吧其实还是卡过去的,用了快读快写,不过这里优化的倍增求LCA还是值得拿起小本子记录一下的哈哈) Code: #i 阅读全文
摘要:
好题! 讲真的这道题比较有代表性,比较套路?(bushi考试的时候没写出来(tcl ),菜是原罪 题意: 给你一个序列,序列上每一个元素都属于一种种类,并且每一种元素有其对应的价值,你可以任意取一段区间,计算这段区间中没有重复出现的元素种类的价值之和.你需要最大化这个价值之和. 思路: 这道题看上去 阅读全文