摘要: 啊,训练时考了2015noip的day2,才突然发现自己不会树上差分。 那么现在就把这个知识漏洞补起来吧~>-< 我是从这篇文章学习的https://baijiahao.baidu.com/s?id=1615363433132223459&wfr=spider&for=pc 树上差分用于统计某个点或 阅读全文
posted @ 2019-03-25 16:32 yyys 阅读(409) 评论(1) 推荐(0)
摘要: 大概意思呢,就是求循环序列的逆序对 题解中有这样的一个思考过程 1.1 30%O(n3) 暴力:枚举每个循环状态,再暴力计算逆序对数。 #include <cstdio> #include <iostream> using namespace std; const int N = 1000000 + 阅读全文
posted @ 2019-03-19 22:02 yyys 阅读(341) 评论(1) 推荐(0)
摘要: 对于(a/b)%MOD这个式子,是不可以写成(a%MOD/b%MOD)%MOD,但是我们可以通过求b的逆元,转化成乘法运算 方程ax≡1(mod p),的解称为a关于模p的逆,当gcd(a,p)==1(即a,p互质)时,方程有唯一解,否则无解。 有如下几种求逆元的方式 1.递推求逆元 逆元有这样一个 阅读全文
posted @ 2019-03-09 16:49 yyys 阅读(428) 评论(0) 推荐(0)
摘要: C(n, m) % p = (C(n/p, m/p) % p) * (C(n%p, m%p) % p) % p 其实就是这个公式啦!用于组合数求模(通常用于阶乘无法解决的问题) 在此之前,要先了解逆元 inv[i]=-p/i*inv[p%i],inv[i]是在%p的条件下i的逆元 逆元的阶乘是这么求 阅读全文
posted @ 2019-03-08 21:35 yyys 阅读(237) 评论(0) 推荐(0)
摘要: 我们当然都知道,快速幂是个好东西。然鹅快速幂也有bug——如果模数比较大,一乘就容易爆long long,那么就需要使用龟速乘了。 阅读全文
posted @ 2019-03-06 17:46 yyys 阅读(916) 评论(0) 推荐(0)
摘要: 上一篇博客写的是中国剩余定理模数互质的情况,然鹅——还存在着模数不互质的情况,而原来的做法就没有办法用了 那我们现在该怎么做呢? 原来的思路是对于每一个方程,我们找出一个基础数,使得基础数满足该方程要求。因为是互质的关系,所以所有基础数加起来也不会冲突。(这个由最小公倍数保证) 还是这个栗子 存在一 阅读全文
posted @ 2019-03-04 22:04 yyys 阅读(2571) 评论(1) 推荐(0)
摘要: 中国剩余定理是一个很神奇的定理hhh,用处是求这样的方程组 举个栗子~ 存在一个数x,除以3余2,除以5余三,除以7余二,然后求这个数 很显然,我们会这样思考:可以先找一个数,满足除以3余2(比如2),再去判断是否这个数是否满足第二个条件:除以5余3,如果不满足,再加上一个3,满足了第二个条件后,再 阅读全文
posted @ 2019-03-04 16:30 yyys 阅读(1074) 评论(0) 推荐(0)
摘要: 以前模模糊糊地学了扩欧,总是感觉不系统,今天好好整理了一下,应该算是把扩欧给弄透。 首先要先明白gcd(最大公约数),很重要的是辗转相除法,即gcd(a,b)=gcd(b,a%b) 板子是这样 然后就是扩欧 根据裴蜀定理: ax + by = m 有解当且仅当m是gcd的倍数。裴蜀等式有解时必然有无 阅读全文
posted @ 2019-03-03 15:59 yyys 阅读(236) 评论(0) 推荐(0)
摘要: 参考https://www.jianshu.com/p/8a27f0462d09 对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1) φ函数的值: φ(x)=x(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(n)) 其中p(1 阅读全文
posted @ 2019-03-02 15:35 yyys 阅读(1811) 评论(0) 推荐(0)
摘要: 优先队列是自动排序的 参考https://blog.csdn.net/qq_19656301/article/details/82490601 头文件 声明格式 priority_queue<结构类型> 队列名; 比如(默认是从大到小的) 基本操作 默认的优先队列(结构体,重载小于) 在结构体里写是 阅读全文
posted @ 2019-02-17 08:33 yyys 阅读(211) 评论(0) 推荐(1)