- 博客(22)
- 收藏
- 关注
原创 拓扑排序算法
给定一个有向无环图,排出一个含所有顶点的序列AAA满足:对于图中的每条边uv(u,v)uv,必须满足uuu在AAA中出现都在vvv的前面,则称序列AAA是该图的一定拓扑序。
2025-07-28 17:24:20
720
原创 费马小定理,欧拉定理以及扩展欧拉定理
我们注意到指数b很大,用快速幂显然不可能,但我们可以使用扩展欧拉定理,如果。,不过要注意b很大,需要使用字符串读取。P5091 【模板】扩展欧拉定理。依次代表的是底数、模数和次数。
2025-07-28 10:56:33
847
原创 裴蜀定理应用
对于不全为0的整数ab,一定存在整数xy,满足axbygcdab对于不全为0的整数a,b,一定存在整数x,y,满足ax+by=gcd(a,b)对于不全为0的整数ab,一定存在整数xy,满足axbygcdab就比如2x6y82x+6y=82x6y8就有解,比如x1y1或者x4y0x=1,y=1或者x=4,y=0x1y1或者x4y0而2x6y12x+6y=12x6。
2025-07-27 11:15:21
1355
原创 莫比乌斯函数
μn1若n10若n含有相同的质因子−1k若n是k个不同质数的乘积\mu(n) =1 & \text{若 } n = 1 \\0 & \text{若 } n \text{ 含有相同的质因子} \\(-1)^k & \text{若 } n \text{ 是 } k \text{ 个不同质数的乘积} \\μn⎩⎨⎧10−1k若n1若n含有相同的质因子若n是k个不同质数的乘积。
2025-07-27 11:14:53
1062
原创 筛选法求质数
p小的数并且是p的倍数会被小于p的质数标记,这样的话,会减少一些标记的数,比如6,但这个小优化还是会有一些数被重复标记,比如12,还是被2,3重复标记了。比如12,我们发现在2的时候就被标记了,应该使用2标记之后就不要使用比2大的质数去标记,也就是说让i的最小质因子去标记i,其他的就不要标记,这样每个数只会被标记一次,这样时间复杂度就会变成。我们发现,对于一些数会被标记多次,比如6,12这些,被2,3同时标记了,我们在这儿即使做一个小优化,也就是对于每一个质数p,从p。i=13时, p{13}, v{}
2025-07-25 16:10:49
938
原创 分解质因数
什么是质因数呢,对于一个数n,如果n=a*b,a为正整数(即a>=1),那么b就是n的一个因子,如果这个因子为质数,那么就是一个质因子,比如4,它的因子有1,2,4,其中2就是4的质因子,而1、4就不是。
2025-07-24 13:19:45
465
原创 C语言求斐波那契数列
此时就不再递归,当n>=3时,就再次使用函数,因为是前两项之和,就使用两次,直到n减为1或2。利用数组,第n项(n>=3)为前两项之和,数组可以存入斐波那契数列的各项的值,我们要想知道第几项,知道下标就行(这里仅仅在前10项里面,由于斐波那契数列增长很大,注意范围)斐波那契数列第一和第二两项都是1,第三项以及后面的第n项(n>=3)为前两项之和,第三项为2,第四项为3,以此类推。怎么求斐波那契数列的第n项,我们主要有三种办法,第一:用两个数不停相加更新;这种求第n项比较麻烦,一般写来求前几项。
2024-01-06 17:13:32
770
1
原创 C语言求阶乘
假设n=4,我们第一次调用函数,返回值为4*J(4-1),然后J(3)=3*J(2),J(2)=2*J(1),而J(1)=1,求得J(1)后一层一层带入,J(2)=2,J(3)=3*J(2)=6,J(4)=4*J(3)=24,所以4!=24,这就是阶乘的递归的写法(注:如果输入负数,可以设置一个条件,C语言中我们怎么求阶乘,我们知道阶乘是一个数一直乘比它小1的数,直到为1,特别注意的是,0!就是不断在函数里又调用该函数,我们要设置一个递归的终止条件,在阶乘里,当n=0或者n=1时便终止递归,返回值为1。
2023-12-28 15:45:59
1092
1
原创 c语言如何求数组中的最大值
定义一个最大值max,让它等于一个较小的数或者数组的第一个元素,遍历数组不停比较找到最大值,k用来记录最大值的下标;printf("最大值为:%d 最大值的下标为:%d\n",max,k);printf("最大值为:%d 最大值的下标为:%d\n",max,k);printf("最大值为:%d 最大值的下标为:%d\n",max,k);//定义最大值为一个较小的数,防止最小数比max还小。//定义最大值为一个较小的数,防止最小数比max还小。//定义最大值为一个较小的数,防止最小数比max还小。
2023-12-27 17:02:53
1905
1
原创 C语言中三个数求最大的数
在c语言中,三个数中求最大的数,可以用if-else,或者三目运算符?进行两个数两个数的比较,找到最大的数;当num1>num2时,max就=num1,不成立就=num2,连续两次比较就可以得到最大值,最后输出。我们连续调用两次函数,两个数比较找到最大的数,返回其中的最大的数,再与第三个数比较,找到最大的数。如果表达式为真,返回a,当表达式为假时,返回b,可以用两种方式实现,一是直接在main函数里。连续两次比较,更新max的值,找到最大的值。2 使用函数的方法。
2023-12-27 01:33:00
2087
1
原创 C语言中整数的加减乘除
注(不同的数据类型的数值范围不一样,比如int类型大约为10^9左右,而long更大,如果数据很大,就需要使用高精度了,这里简单说一下python3.0,它有一个好处就是整数支持无限大)要想进行加减操作,就需要使用符号'+' , '-', '*' , '/',直接对两个数据进行操作即可。比如“1/2”结果为0,我们知道结果为0.5,但‘/’只取整数部分0。如5/3结果不是1,但我们只取了整数部分1,这里需要各位注意。除法比较特殊,在整数中‘/’有一个功能是取整。
2023-12-21 20:43:35
786
1
空空如也
csdn发帖后进的那个群咋进啊
2023-12-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅