随笔分类 - &模板
摘要:一年没碰dev-cpp连对拍都忘记怎么打了qvq。 数据生成器:
阅读全文
摘要:题目链接 题目大意: n个点m条边的无向图,下面最多n行,每一行的第二到最后一个数与第一个数有边相连,保证图联通,求割点数。 分析: 典型的tarjan求割点,dfs出一棵树来就差不多了,读入的细节需要注意。 注意根节点若只有一个儿子则不是割点。 代码: 1 #include<cstdio> 2 #
阅读全文
摘要:题目链接 题目大意: 曹操有N个岛,这些岛用M座桥连接起来,每座桥有士兵把守(也可能没有), 诸葛亮把所有炸弹都带走了,只留下一枚给周瑜(真狠)。 周瑜想让这N个岛不连通,但需要派出不小于守桥士兵数的人去炸桥,因为只有一枚炸弹,因此只够炸掉一座桥。 分析: 很明显的求代价最小的桥,当然这道题有几个特
阅读全文
摘要:1.求单个数(n)的关于模数(p)的逆元: (1)扩展欧几里得算法 满足条件:n与p互质 推导过程:(a*x)%p==(a/b)%p -->x%p==1/b-1/(b*p)*p -->x*b%p==1-1/p*p -->x*b+1/p*p==1 由于b与p互质,所以gcd(b,p)==1,因此用扩展
阅读全文
摘要:题目链接 题目描述 给定一个线性方程组,对其求解 输入输出格式 输入格式: 第一行,一个正整数 n 第二至 n+1行,每行 n+1 个整数,为a1, a2 .....an 和 b,代表一组方程。 输出格式: 共n行,每行一个数,第 i行为 xi (保留2位小数) 如果不存在唯一解,在第一行输出"
阅读全文
摘要:先对原式子进行一个变形: 1/n!=1/x+1/y=(x+y)/xy >n!*(x+y)=xy xy-(x+y)*n!=0 >xy-(x+y)*n!+n!2=n!2 >(x-n!)*(y-n!)=n!2 那么如果我们能够求出n!2的约数个数,对于每个约数加上n!即可作为x或y。 若n!=a1p1+a
阅读全文
摘要:一、线性筛求欧拉函数值 >复杂度O(n) 可以在筛出质数的同时求出每个数的欧拉函数值,主要公式有两条: 1.当i%prime[j]==0时: phi[i*prime[j]]=i*prime[j]*(1-1/p1)*....*(1-1/prime[j])*... 由分解质因数易知phi[i]=i*(1
阅读全文
摘要:题目链接 判断一个图是否为强联通图,只要tarjan求出强联通分量的个数,若个数大于1则不是连通图,tarjan的模板题。 1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 #include<algorithm> 5 #define
阅读全文
摘要:最大公因数(gcd): 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 int lca(int x,int y) 6 { 7 if(y==0)return x; 8 retur
阅读全文
摘要:快速幂取模的模板,要注意所有变量都要开成long long类型的防溢出: #include<cstdio> #include<algorithm> #include<cstring> typedef long long LL; const LL mod=1e9+7; using namespace
阅读全文
摘要:时间复杂度为O(n)的线性筛函数: #include<cstdio> #include<algorithm> #include<cstring> const int maxn=1e5+5; using namespace std; bool prime[maxn]; int primes[maxn]
阅读全文