03 2025 档案

摘要:#include <bits/stdc++.h> using namespace std; void topo() { for(int i=1;i<=n;i++) { //入度为0,则加入 答案 和 入度为0的点中 if(IN[i]==0) { zero_in.push_back(i); ans.p 阅读全文
posted @ 2025-03-14 11:46 石磨豆浆 阅读(1) 评论(0) 推荐(0) 编辑
摘要:树的直径 = ( (经过某个节点的) 最长链 + 次长链) 设 D[x] 表示从节点 x 出发走向以 x 为根的子树,能够到达的最远距离。 设 x 的子节点为 y1,y2....yt,edge(x,y)表示边权,显然有: D[x] = max(D[yi] + edge(x,yi))(i 的范围是 1 阅读全文
posted @ 2025-03-12 21:27 石磨豆浆 阅读(2) 评论(0) 推荐(0) 编辑
摘要:板子 确定 a , b 两点后不断向上找,直到a==b 但是暴力查找总会TLE 于是有了倍增的使用 基本原理:任何数都可以表示成二进制 在这里的运用就是: 把到LCA的距离截成多端2的倍数距离,每次向上提2^k距离 为此要先知道每个点的深度,然后求每个点向上2^k的点是哪个点 dfsn void d 阅读全文
posted @ 2025-03-11 16:12 石磨豆浆 阅读(1) 评论(0) 推荐(0) 编辑
摘要:来源:洛谷Scarlet大佬 Scarlet大佬的github 推导过程在文件里搜magic就有,也有大佬的其他算法随笔 以下是总结代码 #include <bits/stdc++.h> using namespace std; typedef long long int LL; const int 阅读全文
posted @ 2025-03-10 00:50 石磨豆浆 阅读(2) 评论(0) 推荐(0) 编辑
摘要:有奖问答 这种选择导致分支可以使用递归 我个人觉得洛谷的答案错了,如果按能得到洛谷答案的代码,改成求30题对30道,最多对30道的话,得到的是0,应该把限制条件改为能计算答对10道题的方案,因为最多十道题不是不能达到10道题 DFS #include <bits/stdc++.h> using na 阅读全文
posted @ 2025-03-03 20:25 石磨豆浆 阅读(16) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示