摘要:
什么是树状数组? 百度原文 ·树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是 阅读全文
摘要:
什么是欧拉回路? 一句话概括就是在一个双向图中,如果从一个节点开始经历整个图的所有边有且仅有一次,然后回到了起点,这个就是欧拉回路。如果图存在欧拉回路,那么这条从起点出发回到起点的路径称为欧拉路径。 例如 这个不是欧拉回路 这个是欧拉回路 怎么样才会生成欧拉回路? 只有三种情况 ①节点的度数全部为偶 阅读全文
摘要:
Kruskal算法 伪代码 sort间接排序r[i]数组,找出权值最小的边 进行判断如果不是在一块的,那么答案加上权值两条边合并 模板 include using namespace std; int f[200010],r[200010]; int num[200010],to[200010],c 阅读全文
摘要:
增量构造法 代码 阅读全文
摘要:
题目大意 总共有一个深度为D的满二叉树,I个小球,每个节点具有开关,小球经过节点后节点开关会有变化,初始都关闭,若关闭往左右否则往右走 只需要循环一下每层的情况即可 代码 include using namespace std; int main() { int d,i,t; cin t; whil 阅读全文
摘要:
编写find函数 find函数赋值初值 合并操作为f[find(t2)]=find(t3),查找操作为if(find(p2)==find(p3)) 代码 include using namespace std; int f[10010]; int find(int k) { if(f[k]==k) 阅读全文
摘要:
``` include using namespace std; int main() { int n,a,ans=1 n; while(n ) { cin a; now+=a; if(now ans) ans=now; if(now 阅读全文
摘要:
题目简介 一个无向正权图,求任意两个节点之间的路径里最短的路径长度。 直接Floyd解决,就是注意要把Floyd的DP式子改一下成 G[i][j]=min(G[i][j],max(G[i][k],G[k][j]));还有无向图要双向赋值 代码 include using namespace std; 阅读全文
摘要:
这次题目都比较亲民啊。。。没有什么算法题倒是(才怪,子矩阵。。。) A.珠心算测试 注意是数量的个数,不是等式的个数。。。而且我上来两发RE,也是很迷,直接用了map 代码 include using namespace std; map num; map bk; map ans; map vis; 阅读全文
摘要:
注意!!!下面的模板有的并没有去设定具体的无法到达的极限值,也没有考虑极限相加爆表的情况,如果可以的话,最好还是把dis数组定义成long long Floyd算法(仅仅四行的算法) Floyd算法仅仅四行就能解决问题但是时间复杂度达到了感人的O(n^3),唯一的有点是能够输出任意两点之间的最小路径 阅读全文