摘要:
#数据结构 ##后缀数组 后缀数组多实例的时候记得清height数组和c数组。 #数论 ##除法取模 除法取模有一个($b$可以不是质数)公式: \(a\div b \mod p = (a\mod (b\times p))\div b\) 证明: \(a\div b = k\times p + x, 阅读全文
摘要:
"题目链接" 题目大意 问给定的字符串有多少形如"a","aba","ababa"...的子串. 解题思路 这题需要考虑将字符'b'做分隔符,把每个含'a'不含'b'的区间分隔开,那么就很好解决了. 对于第一个区间的'a',它只能选自己,所以它的选法就是这个区间'a'的数量;对于第二个区间,它有两种 阅读全文
摘要:
题目链接 #解题思路 扩展欧几里得的模板题,题目求x最小的正整数解,但是我们用exgcd求出来的是一组特解.怎么办呢?其实很简单,只要在等式左边加上k个$a\times b$,然后再减去k个$a\times b$即可,稍微变形一下就是x加上k个b然后y再减去k个a. #代码 ll x, y; voi 阅读全文
摘要:
"题目链接" 解题思路 很容易推导出f(n)的值是a的幂与b的幂的乘积,并且它们的指数与斐波那契数列有关。但是,首先第一个问题,如果暴力求指数的话一定会超时所以第一步需要用矩阵快速幂求出它们的指数。其次,得到的指数很大,所以还需要欧拉降幂,因为题中的a和b都小于1e9+7,所以直接对指数模(mod 阅读全文
摘要:
题目链接 #解题思路 欧拉降幂的模板题,因为C与A不一定互质,所以这里要用到广义欧拉降幂,用广义欧拉降幂的时候记得讨论指数与模数的大小关系。 ##线性筛选素数 bool u[maxn]; int p[maxn]; char b[maxn]; void pri() { for (int i = 2; 阅读全文
摘要:
题目链接 #题目大意 问有多少对i,j满足$lcm(i,j)=n(i\leq j)$ #解题思路 两个数字的最大公因数其实是两个数所有的质因数都取两者之中最大幂次的结果。假设lcm(i,j)=n,如果a的某个质因数最大幂次是k,那么b的这个质因数取值范围就是0~k,共有k+1种方法,同样的如果b的最 阅读全文
摘要:
题目链接 #题目大意 给两个数$a$和$m,a<m$,找出所有的$x$,满足$0\leq x<m$并且$gcd(a,m)=gcd(a+x,m)$。 #解题思路 题目中的$a<m$十分重要。如果$a+x > m$,\(gcd(a+x-m,m)=gcd(a+x,m)\),又因为题目中$0\leq x<m 阅读全文
摘要:
"题目链接" 题目大意 给$n$个不大于$k$的数,让你尽可能的把它们分成较小的组,每组大于等于$i$的数不超过$c[i]$个。 分析 从最简单的情况开始考虑,对于$n$个数中最大的数$i$,如果数组中一共有$m_i$个$i$,那么这个数组中大于等于$i$的数的数量就是$m_i$个,所以说将这$m_ 阅读全文