随笔分类 -  其他——倍增/st表

摘要:Problem - 1547F - Codeforces 题意: 有一个a数组,每次可以把所有的a[i]变为gcd(a[i],a[(i+1)%n]) 问最少多少次可以让a数组都变为相同的值 第i次操作相当于把a[i]变为原始的区间[i,(i+k)%n]的gcd 所以题目相当于问最小的k,满足所有的区 阅读全文
posted @ 2021-10-02 11:55 TRTTG 阅读(65) 评论(0) 推荐(0) 编辑
摘要:https://acm.hdu.edu.cn/showproblem.php?pid=6989 题意: 定义一个区间[L,R]的平均值为(最大值+最小值)/2 若干次询问[l,r],求[l,r]子区间平均值的期望 对[l,r]求所有子区间的最大值之和+最小值之和 然后除以2再除以子区间个数 求子区间 阅读全文
posted @ 2021-08-17 10:09 TRTTG 阅读(76) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P3246 解法一:莫队+ST表+单调栈 考虑如何由[L,R]的答案推向[L,R+1]的答案 [L,R]向[L,R+1],增加的是[L,R+1] [L+1,R+1] [L+2,R+1] …… [R,R+1] [R,R] 这些区间每个区 阅读全文
posted @ 2021-08-17 09:06 TRTTG 阅读(142) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3693 这题要求在这道题https://www.cnblogs.com/TheRoadToTheGold/p/15141477.html的基础上输出字典序最小的解 这是在上题的基础上的题解 因为在计算最大重复次数的时候,会从分割点往前跳几个字符, 阅读全文
posted @ 2021-08-14 18:32 TRTTG 阅读(32) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/SP687 题意: 求重复出现次数最多的连续重复子串 枚举循环长度i 把整个串每i个长度划分一段,位置1+k*i 是每段的起点,称他为分割点 若一个长为i的子串连续出现至少2次,那么它至少包含了2个连续的分割点、 我们计算相邻两个分割 阅读全文
posted @ 2021-08-14 18:26 TRTTG 阅读(130) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一个字典树 给出一个字符串 匹配的时候,如果在字典树上失配了,则回到根节点,从字符串的下一个位置开始匹配 给出q个询问 每次询问字符串区间[l,r],会在字典树上失配几次,最后停在字典树的哪个节点 求出字典树上的所有前缀哈希值,并标记这个哈希值对应的字典树上的节点 二分+上面的哈希值 求 阅读全文
posted @ 2020-12-04 18:50 TRTTG 阅读(141) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一个数字串,问所有本质不同的子串的最大值之和 如果没有本质不同的要求,就是用单调栈求出每个数字前后第一个大于它的位置,扫一遍计算即可 现在要本质不同,用后缀数组 按字典序依次计算每个后缀的贡献 对于已经按字典序从小到大排好序的后缀i-1和i来说 以i为子串左端点,[i,height[i] 阅读全文
posted @ 2020-11-25 18:01 TRTTG 阅读(218) 评论(0) 推荐(1) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式为AA的子串个数 ans= ∑ suf[i]*pre[i+1] 这两个数组的求法,类似bzoj 21 阅读全文
posted @ 2018-05-02 15:03 TRTTG 阅读(272) 评论(0) 推荐(0) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3238 跟 bzoj3879 差不多 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using n 阅读全文
posted @ 2018-05-01 21:16 TRTTG 阅读(217) 评论(0) 推荐(0) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3879 把所有的后缀取出,按rank排序 求出相邻两个后缀的lcp 每个后缀对答案的贡献就是 与在它之前的后缀的lcp之和 维护一个单调递增的栈,记录栈中元素的lcp之和 即可 #include<cs 阅读全文
posted @ 2018-05-01 21:00 TRTTG 阅读(329) 评论(0) 推荐(0) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=2119 题意:将给定数组差分后,求ABA形式的字串个数,要求|B|=m,|A|>0 1、后缀数组求出 差分序列 和 翻转差分序列后的序列 的sa,rk,height 2、枚举len=|A|,对差分序列 阅读全文
posted @ 2018-05-01 18:04 TRTTG 阅读(308) 评论(0) 推荐(0) 编辑
摘要:求出序列的生成函数后,倍增FWT #include<cstdio> using namespace std; #define N 2048 const int mod=1e9+7; int inv; int f[N+1]; int Pow(int a,int b) { int res=1; for( 阅读全文
posted @ 2018-04-26 18:46 TRTTG 阅读(633) 评论(0) 推荐(0) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=4589 n*m*m 做法 dp[i][j] 前i堆石子,异或和为j的方案数 第一重循环可以矩阵快速幂优化 后面求出序列的生成函数可以FWT优化 做log次FWT也很慢(logn*m*logm) 两个合 阅读全文
posted @ 2018-04-26 17:24 TRTTG 阅读(261) 评论(0) 推荐(1) 编辑
摘要:http://codeforces.com/problemset/problem/15/E 题意: 从H点走下去,再走回H点,不能走重复路径,且路径不能把黑色三角形包围的方案数 中间的黑色三角形把整张图分成两部分 即如果想要走回H点,除了只第一行的路径,必经过上面的蓝色点 否则一定会包围黑色的三角形 阅读全文
posted @ 2018-03-21 11:12 TRTTG 阅读(313) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4516 考虑在后面新加一个字母产生的影响 假设是第i个 如果不考虑重复,那么会增加i个不同的字符串 考虑重复的话,就是找到 最小的j,满足s[j……i] 在之前出现过,那么i的贡献就是j-1 即查找与某 阅读全文
posted @ 2018-03-15 16:08 TRTTG 阅读(212) 评论(2) 推荐(1) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3670 法一:KMP+st表 抽离nxt数组,构成一棵树 若nxt[i]=j,则i作为j的子节点 那么num[i] 就是i到根节点的路径上,所有<=i/2 的节点的个数 这棵树的点随深度的递增而增大 所 阅读全文
posted @ 2018-02-26 14:20 TRTTG 阅读(234) 评论(0) 推荐(0) 编辑
摘要:期望得分:100+100+30=230 实际得分:0+0+0=30 T1 直接模拟 #include<cstdio> #include<iostream> using namespace std; void read(int &x) { x=0; char c=getchar(); while(!i 阅读全文
posted @ 2017-11-06 22:12 TRTTG 阅读(259) 评论(0) 推荐(0) 编辑
摘要:考场思路: 倒着算就是 可以对一个数-1 可以合并两个数 可以证明只有0和0才能执行合并操作 然后模拟 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 1000001 voi 阅读全文
posted @ 2017-11-06 11:18 TRTTG 阅读(313) 评论(0) 推荐(0) 编辑
摘要:期望得分:0+60+60=120 实际得分:0+30+60=90 令g=gcd(X11,X12,X13……) 则行列式可能为D的充要条件为g|D 1、g|D为必要条件: 由定义来算行列式的时候,每一项都要从第一行里取一个数,所以g|D 2、g|D为充分条件: 首先可以通过矩阵的初等变换,将矩阵X消成 阅读全文
posted @ 2017-10-12 17:14 TRTTG 阅读(371) 评论(2) 推荐(1) 编辑
摘要:期望得分:100+100+40=240 实际得分:100+40+0=140 T1 一道图论神题(god) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成。并且这是一张带权图,只有点权。 LYK想把这个 阅读全文
posted @ 2017-10-08 22:02 TRTTG 阅读(340) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示