博客园 - qdu_lkc
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=124179
2020-12-23T12:44:31Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
feed.cnblogs.com
https://www.cnblogs.com/qdu-lkc/p/13261729.html
二分 - qdu_lkc
二分模板 二分模板一共有两个,分别适用于不同情况。 算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。 版本1 当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,
2020-07-07T08:41:00Z
2020-07-07T08:41:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】二分模板 二分模板一共有两个,分别适用于不同情况。 算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。 版本1 当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;, <a href="https://www.cnblogs.com/qdu-lkc/p/13261729.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12266165.html
887. 求组合数 III(模板 卢卡斯定理) - qdu_lkc
a,b都非常大,但是p较小 前边两种方法都会超时的 N^2 和NlongN 可以用卢卡斯定理 P*longN*longP 定义: 代码: import java.util.Scanner; public class Main{ static int p; //快速幂 static long quic
2020-02-05T11:29:00Z
2020-02-05T11:29:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】a,b都非常大,但是p较小 前边两种方法都会超时的 N^2 和NlongN 可以用卢卡斯定理 P*longN*longP 定义: 代码: import java.util.Scanner; public class Main{ static int p; //快速幂 static long quic <a href="https://www.cnblogs.com/qdu-lkc/p/12266165.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12264907.html
886. 求组合数 II(模板) - qdu_lkc
数据范围较大, a,b都是1e5 直接根据公式预处理 1/i就是求i的逆元(逆元求法:mod为质数,逆元就是 i^(mod-2)%mod ) O(N*logN) import java.util.Scanner; public class Main{ static final int N=10000
2020-02-05T10:24:00Z
2020-02-05T10:24:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】数据范围较大, a,b都是1e5 直接根据公式预处理 1/i就是求i的逆元(逆元求法:mod为质数,逆元就是 i^(mod-2)%mod ) O(N*logN) import java.util.Scanner; public class Main{ static final int N=10000 <a href="https://www.cnblogs.com/qdu-lkc/p/12264907.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12264727.html
885.求组合数 I(模板) - qdu_lkc
O(n^2) 数据范围 a*b =4e6 根据组合数公式: 代码: import java.util.Scanner; public class Main{ static final int N=2005; static final int mod=(int)1e9+7; static int c[
2020-02-05T09:50:00Z
2020-02-05T09:50:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】O(n^2) 数据范围 a*b =4e6 根据组合数公式: 代码: import java.util.Scanner; public class Main{ static final int N=2005; static final int mod=(int)1e9+7; static int c[ <a href="https://www.cnblogs.com/qdu-lkc/p/12264727.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12264255.html
线性同余方程(同余+扩展欧几里得模板) - qdu_lkc
给定n组数据ai,bi,mi,对于每组数求出一个xi,使其满足ai∗xi≡bi(mod mi),如果无解则输出impossible。 输入格式 第一行包含整数n。 接下来n行,每行包含一组数据ai,bi,mi。 输出格式 输出共n行,每组数据输出一个整数表示一个满足条件的xi,如果无解则输出impo
2020-02-05T08:19:00Z
2020-02-05T08:19:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定n组数据ai,bi,mi,对于每组数求出一个xi,使其满足ai∗xi≡bi(mod mi),如果无解则输出impossible。 输入格式 第一行包含整数n。 接下来n行,每行包含一组数据ai,bi,mi。 输出格式 输出共n行,每组数据输出一个整数表示一个满足条件的xi,如果无解则输出impo <a href="https://www.cnblogs.com/qdu-lkc/p/12264255.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12263492.html
扩展欧几里得(模板) - qdu_lkc
斐蜀定理: 对于任意的正整数a,b,一定存在非零整数x,y,使得ax+by=gcd(a,b) 扩展欧几里得算法用于求任意一对x和y 给定nn对正整数a,b,对于每对数,求出一组x,y,使其满足a∗x+b∗y=gcd(a,b) 代码: import java.util.*; public class
2020-02-05T05:56:00Z
2020-02-05T05:56:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】斐蜀定理: 对于任意的正整数a,b,一定存在非零整数x,y,使得ax+by=gcd(a,b) 扩展欧几里得算法用于求任意一对x和y 给定nn对正整数a,b,对于每对数,求出一组x,y,使其满足a∗x+b∗y=gcd(a,b) 代码: import java.util.*; public class <a href="https://www.cnblogs.com/qdu-lkc/p/12263492.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12262827.html
乘法逆元(模板) - qdu_lkc
乘法逆元定义: b存在乘法逆元的充要条件是b与模数m互质 原因:b * x ≡ 1 (mod m) 如果b和m不互质,则 b * x肯定是m的倍数,b * x%m=0 所以b%m==0 ,b不存在乘法逆元 1.当n为质数时,可以用快速幂求逆元: a / b(整除) ≡ a * x (mod m) 两
2020-02-05T03:06:00Z
2020-02-05T03:06:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】乘法逆元定义: b存在乘法逆元的充要条件是b与模数m互质 原因:b * x ≡ 1 (mod m) 如果b和m不互质,则 b * x肯定是m的倍数,b * x%m=0 所以b%m==0 ,b不存在乘法逆元 1.当n为质数时,可以用快速幂求逆元: a / b(整除) ≡ a * x (mod m) 两 <a href="https://www.cnblogs.com/qdu-lkc/p/12262827.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12260122.html
求欧拉函数(模板) - qdu_lkc
互质是公约数只有1的两个整数,叫做互质整数 1.根据定义求解 比如1~6中与6互质的数只有1,5,所以6的欧拉函数是2 求一个时间复杂度:O(sqrt(n))求n个就是 n*sqrt(n) long res=n; for(int i=2;i<=n/i;i++){ if(n%i==0){ res=re
2020-02-04T09:14:00Z
2020-02-04T09:14:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】互质是公约数只有1的两个整数,叫做互质整数 1.根据定义求解 比如1~6中与6互质的数只有1,5,所以6的欧拉函数是2 求一个时间复杂度:O(sqrt(n))求n个就是 n*sqrt(n) long res=n; for(int i=2;i<=n/i;i++){ if(n%i==0){ res=re <a href="https://www.cnblogs.com/qdu-lkc/p/12260122.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12259884.html
最大公约数(欧几里得算法/辗转相除法) - qdu_lkc
static int gcd(int a,int b){ return b==0?a:gcd(b,a%b); }
2020-02-04T08:24:00Z
2020-02-04T08:24:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】static int gcd(int a,int b){ return b==0?a:gcd(b,a%b); } <a href="https://www.cnblogs.com/qdu-lkc/p/12259884.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12259843.html
求约数之和 - qdu_lkc
给定n个正整数aiai,请你输出这些数的乘积的约数之和,答案对109+7取模。 输入格式 第一行包含整数n。 接下来n行,每行包含一个整数ai。 输出格式 输出一个整数,表示所给正整数的乘积的约数之和,答案需对109+7取模。 数据范围 1≤n≤1001≤ai≤2∗10^9 输入样例: 3 2 6
2020-02-04T08:14:00Z
2020-02-04T08:14:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定n个正整数aiai,请你输出这些数的乘积的约数之和,答案对109+7取模。 输入格式 第一行包含整数n。 接下来n行,每行包含一个整数ai。 输出格式 输出一个整数,表示所给正整数的乘积的约数之和,答案需对109+7取模。 数据范围 1≤n≤1001≤ai≤2∗10^9 输入样例: 3 2 6 <a href="https://www.cnblogs.com/qdu-lkc/p/12259843.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12259725.html
求约数个数(模板) - qdu_lkc
整数的唯一分解定理 对于一个大于1正整数n可以分解质因数: 约数个数 。 其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。 eg: 给定n个正整数aiai,请你输出这些数的乘积的约数个数,答案对109+7取模。 输入格式 第一行包含整数n。 接下来n行,每行包含一个整数aiai。 输出格
2020-02-04T07:48:00Z
2020-02-04T07:48:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】整数的唯一分解定理 对于一个大于1正整数n可以分解质因数: 约数个数 。 其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。 eg: 给定n个正整数aiai,请你输出这些数的乘积的约数个数,答案对109+7取模。 输入格式 第一行包含整数n。 接下来n行,每行包含一个整数aiai。 输出格 <a href="https://www.cnblogs.com/qdu-lkc/p/12259725.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12259546.html
唯一分解定理 - qdu_lkc
整数的唯一分解定理 对于一个大于1正整数n可以分解质因数:
2020-02-04T07:14:00Z
2020-02-04T07:14:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】整数的唯一分解定理 对于一个大于1正整数n可以分解质因数: <a href="https://www.cnblogs.com/qdu-lkc/p/12259546.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12259452.html
分解质因数(模板) - qdu_lkc
给定n个正整数ai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数n。 接下来n行,每行包含一个正整数aiai。 输出格式 对于每个正整数aiai,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,每个底数和指数占一行。 每个正整数的
2020-02-04T06:54:00Z
2020-02-04T06:54:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定n个正整数ai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数n。 接下来n行,每行包含一个正整数aiai。 输出格式 对于每个正整数aiai,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,每个底数和指数占一行。 每个正整数的 <a href="https://www.cnblogs.com/qdu-lkc/p/12259452.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12259173.html
素数筛法(模板) - qdu_lkc
质数:在大于1的整数中,如果只包含1和本身这两个约数,那么就是素数 试除法: 时间复杂度 O(sqrt(n)) 代码: static boolean prime(int n){ if(n < 2) return false; for(int i = 2; i <= n/i; i++){//因为i能被
2020-02-04T05:40:00Z
2020-02-04T05:40:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】质数:在大于1的整数中,如果只包含1和本身这两个约数,那么就是素数 试除法: 时间复杂度 O(sqrt(n)) 代码: static boolean prime(int n){ if(n < 2) return false; for(int i = 2; i <= n/i; i++){//因为i能被 <a href="https://www.cnblogs.com/qdu-lkc/p/12259173.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12258912.html
int long的数据范围 - qdu_lkc
java 整数型 byte 1字节 -128~127 -2^7~2^7-1 short 2字节 -32768~32767 int 4个字节 -2147483648~2147483647 -2^31~2^31-1 long 8个字节 -2^63~2^63-1
2020-02-04T04:10:00Z
2020-02-04T04:10:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】java 整数型 byte 1字节 -128~127 -2^7~2^7-1 short 2字节 -32768~32767 int 4个字节 -2147483648~2147483647 -2^31~2^31-1 long 8个字节 -2^63~2^63-1 <a href="https://www.cnblogs.com/qdu-lkc/p/12258912.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12258893.html
hdu 6182A Math Problem(快速幂) - qdu_lkc
You are given a positive integer n, please count how many positive integers k satisfy kk≤nkk≤n. InputThere are no more than 50 test cases. Each case o
2020-02-04T04:05:00Z
2020-02-04T04:05:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】You are given a positive integer n, please count how many positive integers k satisfy kk≤nkk≤n. InputThere are no more than 50 test cases. Each case o <a href="https://www.cnblogs.com/qdu-lkc/p/12258893.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12255573.html
861. 二分图的最大匹配(匈牙利算法模板) - qdu_lkc
给定一个二分图,其中左半部包含n1n1个点(编号1~n1n1),右半部包含n2n2个点(编号1~n2n2),二分图共包含m条边。 数据保证任意一条边的两个端点都不可能在同一部分中。 请你求出二分图的最大匹配数。 二分图的匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附
2020-02-03T06:22:00Z
2020-02-03T06:22:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定一个二分图,其中左半部包含n1n1个点(编号1~n1n1),右半部包含n2n2个点(编号1~n2n2),二分图共包含m条边。 数据保证任意一条边的两个端点都不可能在同一部分中。 请你求出二分图的最大匹配数。 二分图的匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附 <a href="https://www.cnblogs.com/qdu-lkc/p/12255573.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12255565.html
860. 染色法判定二分图(模板) - qdu_lkc
给定一个n个点m条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数n和m。 接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。 输出格式 如果给定图是二分图,则输出“Yes”,否则输出“No”。 数据范围 1≤n,m≤1051≤n,m≤
2020-02-03T06:20:00Z
2020-02-03T06:20:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定一个n个点m条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数n和m。 接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。 输出格式 如果给定图是二分图,则输出“Yes”,否则输出“No”。 数据范围 1≤n,m≤1051≤n,m≤ <a href="https://www.cnblogs.com/qdu-lkc/p/12255565.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12255545.html
859. Kruskal算法求最小生成树(模板) - qdu_lkc
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成
2020-02-03T06:16:00Z
2020-02-03T06:16:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成 <a href="https://www.cnblogs.com/qdu-lkc/p/12255545.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/qdu-lkc/p/12255533.html
858. Prim算法求最小生成树(模板) - qdu_lkc
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成
2020-02-03T06:15:00Z
2020-02-03T06:15:00Z
qdu_lkc
https://www.cnblogs.com/qdu-lkc/
【摘要】给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成 <a href="https://www.cnblogs.com/qdu-lkc/p/12255533.html" target="_blank">阅读全文</a>