摘要:
题意: 给你一个1e9-1e14的质数P,让你找出这个质数的前一个质数Q,然后计算Q!mod P 题解: 1e14的数据范围pass掉一切素数筛法,考虑Miller-Rabin算法。 米勒拉宾算法是一种判断素数的随机化算法,由于其随机性,它不能保证总是正确的,但其对于一个素数,总会返回素数的结果,对 阅读全文
摘要:
回文自动机模板题 头铁了一下午hdu6599,最后发现自己的板有问题 先放这里一个正确性得到基本确认的板,过两天肝hdu6599 阅读全文
摘要:
因为manacher算法把原来的字符串扩大了两倍,因此在应用时许多二级结论都非常不直观,现场推出来很麻烦,因此笔者在此做个简单整理,如果发现有错误或者有常用的我没有涉及到的,恳请在下方评论区指出,我会非常感谢。 1,rad数组虽然指的是回文半径,但是它的值减一和回文子串长度对应 因此,最长回文子串长 阅读全文
摘要:
题意: 找出这样的回文子串的个数:它本身是一个回文串,它的前一半也是一个回文串 输出格式要求输出l个数字,分别代表长度为1~l的这样的回文串的个数 题解: (回文自动机和回文树是一个东西) 首先用回文自动机求出所有本质不同的字符串,以及它们出现的次数,把前半部分的字符串和后半部分的字符串分别hash 阅读全文
摘要:
标准库中常用的需要定义比较函数的工具: sort 排序 priority_queue 优先队列(或称堆) lower_bound upper_bound 二分查找 nth_element 找数组第n大 set 集合 map 映射表 常用的定义比较函数的方法: 对于普通的数据类型,如int,doubl 阅读全文
摘要:
这个回文自动机的板有问题,它虽然能过这道题,但是在计算size的时候会出锅! 题意: 求一个字符串中本质不同的连续子串有几个,但是某串和它反转后的字符串算一个。 题解: 要注意的是,一般字符串题中的“反转”,往往和回文串挂钩,反之亦然。 赛时最后半小时码的这道题,和队友很快发现了可以把字符串构造成s 阅读全文
摘要:
题意: 求最短路,但是你有k次机会可以把路径中某条边的长度变为0. 题解: 跑k+1次迪杰斯特拉,设想有k+1组dis数组和优先队列,第k组就意味着删去k条边的情况,每次松弛操作,松弛的两点i,j和距离l(i,j),不仅更新本组的dis数组令dis[j]=dis[i]+l[i,j],还更新下一组,令 阅读全文
摘要:
题意: 有一棵树,树上有许多人,他们要聚会,找一个点使得所有人到这个点的距离的最大值最小。 题解: 首先,以一个有人的点为根,求一个生成树,删掉所有没有人的子树,保证所有的悬挂点(只连接一条边的点)都是有人的节点,以保证后面求出的直径的两端是两个有人节点。为什么非得以有人的节点为根呢?因为如果找了一 阅读全文
摘要:
题意: 一个军队有n人,你可以给他们每个人安排战士或者法师的职业,有m对人有组合技,组合技的信息是a,b,c,代表如果这两个人是两个战士,则组合技威力为a,一个战士一个法师,威力为b,其中b=a/4+c/3,两个法师,威力为c,求最大的威力。 题解: 这道题给出了一个最小割的清奇思路。 首先不去想边 阅读全文
摘要:
题意: 给定一个数列,每次询问一个区间,问这个区间中的值可组成的周长最大的三角形的周长。 题解: 定理1:给定一些值,这些值中组成边长最大的三角形的三条边的大小排名一定是连续的。 证明:假如第k大,第k+1大,第k+2+b(b>0)大的三条边组成了一个边长最大的三角形,那么较小的两条边加起来长度大于 阅读全文