随笔分类 -  算法竞赛进阶指南

摘要:"传送门" 思路 因为交换同一列的相邻两行,这一列的总数不变;交换同一行的相邻两列,这一行的总数不变。 那么如果可以平均分配的话,可以先将所有行都分配好,然后再将所有列分配好。 这样就变成了做两次环形纸牌分配问题, 给一个数列,最后一位和第一位相邻,问能否平均分配,最少需要传递多少次。 首先考虑普通 阅读全文
posted @ 2020-02-04 19:15 BakaCirno 阅读(162) 评论(0) 推荐(0)
摘要:题目:http://poj.org/problem?id=2442 题意:给m个包含n个数字的数列,在每个数列中选一个数加起来,这样的和由nm个,求这些和中最小的前n个。 可以先看两个数列的情况,假设这两个数列为A,B。先将这两个数列从小到大排序,那么最小的和肯定是A[1]+B[1],而第二小的就是 阅读全文
posted @ 2019-08-07 18:25 BakaCirno 阅读(262) 评论(0) 推荐(0)
摘要:模板题:https://www.luogu.org/problem/P3375 学习了kmp算法,虽然不是太懂,贴一个模板先。 阅读全文
posted @ 2019-08-07 15:31 BakaCirno 阅读(140) 评论(0) 推荐(0)
摘要:题目:http://poj.org/problem?id=3764 题意简单来说就是给你一棵树,从树上找两个点它们之间所有边权的异或值最大。 假设从根节点到i点的异或值为xor[i],那么从a点到b点的异或值应该是xor[a]^xor[b]吧,因为从根节点到a,b祖先节点会异或掉自身。 那么我们可以 阅读全文
posted @ 2019-08-07 10:04 BakaCirno 阅读(115) 评论(0) 推荐(0)
摘要:裸题:https://www.acwing.com/problem/content/144/ 相似题目: hdoj1251 存一个字典树模板 阅读全文
posted @ 2019-08-06 16:09 BakaCirno 阅读(148) 评论(0) 推荐(0)
摘要:题目:http://poj.org/problem?id=3974 本来是想练习一下字符串哈希算法的,没想到改了好久的二分,23333。 求字符串中的最长回文字串以前我一直用的dp,当然这道题用dp会T。用哈希+二分可以达到O(NlogN)的时间复杂度。 首先进行正反两次字符串哈希。哈希方法 然后分 阅读全文
posted @ 2019-08-06 11:13 BakaCirno 阅读(399) 评论(0) 推荐(0)
摘要:题目:https://www.acwing.com/problem/content/140/ 其实还算蛮简单的一个算法,但感觉能用到的地方也不少。 把字符串经行hash,并且可以再O(1)的时间复杂度查询其字串的hash值,不同字符串的hash值基本不会重合。 取字串s[l,r]hash值的方法: 阅读全文
posted @ 2019-08-06 09:28 BakaCirno 阅读(2793) 评论(0) 推荐(1)
摘要:哈希表模板题,因为相同雪花的长度相同,顺序不一样,那么相同雪花的累加和累乘相等。利用这个性质可以用哈希表将雪花分类。之后再分类查找。 这样设计哈希函数:(长度累加+长度累乘)%P,这个P是接近N的一个质数,这样可以使得哈希表尽量分散。 然后就是查找,判断是否是同一片雪花。 这道题居然卡了stl,用l 阅读全文
posted @ 2019-08-05 16:12 BakaCirno 阅读(260) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/137/ 我们知道不加长度限制的最大子序列和可以用贪心轻松解决。然而这道题中给子序列增加了一个最大长度为m的限制,那么贪心就不正确了。 首先将区间和转化为前缀和之差,那么[l,r]的区间和应该是S[r]-S[l-1]。那么 阅读全文
posted @ 2019-08-04 10:07 BakaCirno 阅读(240) 评论(0) 推荐(1)
摘要:http://poj.org/problem?id=2559 题意都懂,给出数列h1,h2,...hn。代表n个宽为1,高为hi的矩形,求最大连续的矩形面积。 思路:对于每个矩形,当然高已经决定,我们思考它的宽可以为多少。很容易得出它的宽可以向左右延伸到第一个高小于它的矩形之前。也就是说,对于每个h 阅读全文
posted @ 2019-08-04 00:26 BakaCirno 阅读(254) 评论(0) 推荐(0)