摘要:
是一种随机化素数检测算法 基于下面的定理 费马小定理:如果p是素数,a不是p的倍数,那么$a ^ {p - 1} \equiv 1(\bmod \ p)$ 二次探测定理:如果p是一个素数,且$x \in [1,p - 1]$,则方程$x ^2 % p = 1$的解为$x = 1$或$x = p - 阅读全文
摘要:
给出n和n个数,求异或和为0的子段个数 "传送门" 设a[i]为输入的数 b[i]为异或前缀和 b[i] = a[1] ^ a[2] ^ ... ^ a[i 1] ^ a[i] 已知一个数x^y = 0当且仅当x == y时成立 那么对于一段[1,r]来说,异或前缀和为b[r],那么如果想要以r为异 阅读全文
摘要:
传送门 \(\sum_{i = 1}^{n}k \ mod \ i\) \(k \ mod \ i = k - \lfloor \frac{k}{i} \rfloor*i\) \(\sum_{i = 1}^{n}k \ mod \ i = kn - \sum_{i = 1}^{n}\lfloor \ 阅读全文
摘要:
数位dp 给出一个区间,求区间里满足某些条件的数有几个 直接暴力求解 打表+前缀和 数位dp 当区间范围很大时,时间复杂度需要,无法暴力,只能用数位dp来做 模板求[1,n]的数字里不含49的个数 数组$a[i]$存放数字n(即区间的端点值)的值,如果n是1234,那么数组就是{4,3,2,1}但是 阅读全文
摘要:
一直是个坑,还没有填完的莫比乌斯反演 阅读全文
摘要:
权值线段树的功能有 查询x在整个区间出现的次数 查询[L,R]的数字出现的次数 所有数中出现次数第k大的数字 基于线段树和二分的思想 即 定义$int \ tree[maxn];$ tree[i]表示某段区间数字出现的次数 一般需要离散化操作 插入数据 查询第k大数 只需要知道右节点数字出现的次数即 阅读全文
摘要:
对于初始没有进行编号,且要求数字小的尽可能在前面 需要进行反向拓扑排序 真的看不懂 反正需要进行 邻接表优化 "传送门" "传送门" 阅读全文
该文被密码保护。 阅读全文
摘要:
生成测试数组 冒泡排序 $O(n^{2})$ 选择排序 $O(n^{2})$ 归并排序 $O(nlogn)$ 希尔排序 排序的一些概念 稳定排序 不稳定排序 阅读全文
摘要:
逆序对 对于一个数论$a_{1},a_{2}......a_\(,定义有一对序列\){i,j}$,当且仅当$i<j$且$a_>a_$为逆序对 本质是:一组数论,只能相邻的数进行交换,求得试数列为单调的最小交换次数 归并排序 归并排序是基于分治思想进行的,把区间$[l,r]\(拆分成\)[l,mid] 阅读全文
摘要:
现有n本书按照顺序摆放,现要求重新排列,使得新的书的顺序中每一本书都不在原来的位置,求有多少种排列方式? 定义: 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排 将问题分为两个步骤 把n本书的错排操作数记为D(n) 步骤1 先从n本书里面 阅读全文
摘要:
java的System.out.println(); System.out.println(ch)调用的是System.out.println(char[])这个方法 System.out.println(“ch”+ch)调用的是System.out.println(String)这个方法 然后加号 阅读全文
摘要:
基本概念 源点:起始点 汇点:目标点 流:从源点到汇点的一条路径 容量:每条管道允许通过的最大流量 流量:通过一条边的水的实际体积 最小割 最大流等于最小割 增广路 从起点到终点的一条路径 寻找从S到T的一条增广路: 在红色的路线里,路径的一条最小流量是3,那么这条路径上的边都减去3,同时反向边加上 阅读全文
摘要:
"传送门" 选择a和b,但是a有代价,b有代价,且a的代价是具有连续性的 include include using namespace std; const int maxn=2e5+5; int dp[maxn][2]; int a[maxn],b[maxn]; int main(){ int 阅读全文
摘要:
阅读全文
![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1572434898245&di=9e7eb30786bc9f40dc012c5f9f242bb0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201506%2F29%2F20150629192859_kUFwT.jpeg)
摘要:
Lucas定理是用来求 c(n,m) mod p,p为素数的值。 C(n, m) % p = C(n / p, m / p) * C(n % p,m % p) % p \(Lucas(n,m,p)=C(n \% p,m \% p) \times Lucas(\frac{n}{p},\frac{m}{ 阅读全文