摘要: 求解树的直径: 从树的任意一个节点开始BFS/DFS,找到距离最远的点P,之后从点P开始BFS/DFS,找到距离点P最远的点Q,PQ之间的距离就是该树的直径。 1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 c 阅读全文
posted @ 2022-04-20 10:49 Modest-Hamilton 阅读(41) 评论(0) 推荐(0)
摘要: 【题目链接】 鸡蛋掉落 【题目描述】 给你 k 枚相同的鸡蛋,并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f ,满足 0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。 每次操作,你可以取一枚没有碎的鸡蛋 阅读全文
posted @ 2021-12-23 11:26 Modest-Hamilton 阅读(111) 评论(0) 推荐(0)
摘要: $给定n对于正整数a,b,求出一组x,y,使其满足a \times x + b \times y = gcd(a,b)$ 首先给出Bezout定理: 在数论中,裴蜀定理是一个关于最大公约数的定理,说明对任何整数a,b和d,关于未知数x和y的线性方程:ax + by = m,有整数解时当且仅当m是a及 阅读全文
posted @ 2021-10-30 23:52 Modest-Hamilton 阅读(67) 评论(0) 推荐(0)
摘要: $对于a^{b} ,可以用O(logb)的时间复杂度求出,使用二进制拆分的思想将b拆分成二进制,分别得出a^{2^{0}},a^{2^{1}}...a^{2^{n}}之后求积即可。$ 1 #include <iostream> 2 using namespace std; 3 4 long long 阅读全文
posted @ 2021-10-30 22:17 Modest-Hamilton 阅读(31) 评论(0) 推荐(0)
摘要: 欧拉函数的定义: $1\sim N$中与$N$互质的数的个数被称为欧拉函数,记作$\phi \left ( N \right )$ 在算数基本定理中,$N= p_1^{a_1}p_2^{a_2}...p_m^{a_m}$,则: $\phi \left ( N \right ) = N\times \ 阅读全文
posted @ 2021-10-30 20:55 Modest-Hamilton 阅读(123) 评论(0) 推荐(0)
摘要: 约数,因数。 整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。 试除法(从小到大输出): 同质数的试除法思想类似,如果d|n,那么(n/d)|n,即约数是成对出现的,因此只需要枚举到n1/2就可以了。 1 void div 阅读全文
posted @ 2021-10-30 20:23 Modest-Hamilton 阅读(112) 评论(0) 推荐(0)
摘要: 质数:①大于1;②不包含除了1和自身的其他约数。 试除法求解一个数是否为质数: 1 bool isPrime(int n) 2 { 3 if(n == 1) 4 return true; 5 for(int i = 2;i < n;++i) 6 { 7 if(n % i == 0) 8 return 阅读全文
posted @ 2021-10-30 20:09 Modest-Hamilton 阅读(171) 评论(0) 推荐(0)
摘要: 1 #include <iostream> 2 #include <algorithm> 3 #include <string.h> 4 using namespace std; 5 const int N = 509,M = 100009; 6 int n1,n2,m,idx,res; 7 int 阅读全文
posted @ 2021-10-22 21:35 Modest-Hamilton 阅读(93) 评论(0) 推荐(0)
摘要: 1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 5 const int N = 100009; 6 int h[N],e[2*N],ne[2*N],idx; 7 int n,m,color[N]; 8 void 阅读全文
posted @ 2021-10-22 10:54 Modest-Hamilton 阅读(33) 评论(0) 推荐(0)
摘要: Kruskal和prim不同的点在于prim每次都是找离集合距离最小的点,Kruskal找的是图中最短的边,如果边的两端不连通,则加入生成树中,属于是贪心的策略。 思路: ①每次都找最短的边,因此首先对所有的边进行从小到大的排序,因为排序,所以Kruskal的时间复杂度下限就已经是O(nlogn)了 阅读全文
posted @ 2021-10-22 10:28 Modest-Hamilton 阅读(45) 评论(0) 推荐(0)