随笔分类 -  优化—快速幂

该文被密码保护。
posted @ 2019-01-12 22:08 lokiii 阅读(9) 评论(0) 推荐(0)
摘要:T了两次之后我突然意识到转成fwt形式之后,直接快速幂每次乘一下最后再逆回来即可,并不需要没此次都正反转化一次…… 就是根据nim的性质,先手必输是所有堆个数异或和为0,也就变成了一个裸的板子 阅读全文
posted @ 2018-11-30 16:11 lokiii 阅读(199) 评论(0) 推荐(0)
摘要:还是没有理解透原根……题目提示其实挺明显的,M是质数,然后1 include include using namespace std; const int N=20005,mod=1004535809,g=3; int n,m,x,k,s[N],d=2,id[N],lm,bt,re[N]; long 阅读全文
posted @ 2018-11-28 21:50 lokiii 阅读(198) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-23 19:28 lokiii 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-08 21:40 lokiii 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-09-30 11:38 lokiii 阅读(3) 评论(0) 推荐(0)
摘要:注意到周期234的lcm只有12,也就是以12为周期,可以走的状态是一样的 所以先预处理出这12个状态的转移矩阵,乘起来,然后矩阵快速幂优化转移k/12次,然后剩下的次数暴力转移即可 cpp include include include using namespace std; const int 阅读全文
posted @ 2018-09-15 10:17 lokiii 阅读(151) 评论(0) 推荐(0)
摘要:矩阵乘法一般不满足交换律!!所以快速幂里需要注意乘的顺序!! 其实不难,设f[i]为i的答案,那么f[i]=(f[i 1] w[i]+i)%mod,w[i]是1e(i的位数),这个很容易写成矩阵的形式,然后按每一位分别矩阵快速幂即可 矩阵: f[i 1] w[i] 1 1 f[i] i 1 0 1 阅读全文
posted @ 2018-09-07 16:51 lokiii 阅读(112) 评论(0) 推荐(0)
摘要:今天真是莫名石乐志 一眼矩阵乘法,但是这个矩阵的建立还是挺有意思的,就是把sum再开一列,建成大概这样 然后记!得!开!long!long!! cpp include include using namespace std; const int N=20; long long n,b[N],c[N] 阅读全文
posted @ 2018-08-01 22:17 lokiii 阅读(139) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-07-20 14:55 lokiii 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-07-13 22:37 lokiii 阅读(2) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-07-10 22:45 lokiii 阅读(4) 评论(0) 推荐(0)
摘要:!:自环也算一条路径 矩阵快速幂,把矩阵乘法的部分替换成Floyd(只用一个点扩张),这样每“乘”一次,就是经过增加一条边的最短路,用矩阵快速幂优化,然后因为边数是100级别的,所以把点hash一下最多剩下200个 阅读全文
posted @ 2018-07-06 22:47 lokiii 阅读(183) 评论(0) 推荐(0)
摘要:参考:https://www.cnblogs.com/iwtwiioi/p/4986316.html 注意区间长度为1e5级别。 则假设n个数不全相同,那么他们的gcd小于最大数 最小数,证明:则gcdk2−gcdk1=gcd(k2−k1) d 所以特判一下全相等的情况就行利润 然后把区间除以k,这 阅读全文
posted @ 2018-04-25 19:35 lokiii 阅读(128) 评论(0) 推荐(0)
摘要:第一问快速幂板子 第二问把式子转化为\\( xy\equiv Z(mod\ P)\rightarrow xy+bP=z \\),然后扩展欧几里得 第三问BSGS板子 cpp include include include include using namespace std; long long 阅读全文
posted @ 2018-01-26 16:39 lokiii 阅读(216) 评论(0) 推荐(0)