摘要: 最短路径算法 Floyed PS:能求带负边图,但不能带负权回路 可以求出任意两点之间的最短路径 主代码: for(k=1;k include define maxn 9999999 using namespace std; int f[101][101]; int n,m,x,y,s; int p 阅读全文
posted @ 2018-07-08 11:27 Nanchtiy 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 思路 从2开始找 找到一个加入素数表中 在之后的每一个数与前面找到素数表中的素数相乘的积也不是质数 (任意一个合数是一个质数与一个数的积) 例题 洛谷P3383:线性筛素数(可用埃筛做) https://www.luogu.org/problemnew/show/P3383 代码: include 阅读全文
posted @ 2018-07-08 11:26 Nanchtiy 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 最小生成树 定义 关于N个点用其中的N 1条边连起来的权值最小的图 算法 prim 类似Dijkstra和贪心的思路 1. 取一个点为起点遍历所有与其连接的点 2. 把最小权值的点加入最小生成树 3. 修改于其相连的点权值 4. 重复1,2,3直到N次循环 例题: 洛谷P3366:最小生成树模板 h 阅读全文
posted @ 2018-07-08 11:25 Nanchtiy 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 并查集 定义 把许多有关系的人合并成一个集合 然后询问其中的人是否有关系的时候用并查集 思路 用 树 存图 每一次输入判断他们的祖先是否 同一个 不同的话就把两个数的祖先改成同一个 最后的询问只要O(1) 例子和代码 一个入门的并查集题目 洛谷P1551:https://www.luogu.org/ 阅读全文
posted @ 2018-07-08 11:23 Nanchtiy 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目 https://www.luogu.org/problemnew/show/P1525 思路 1. 把所有边sort一遍 从大到小排列 2. 运用并查集思想敌人的敌人就是朋友 3. 从最大边开始查找连着的两个罪犯 4. 如果他们在一个监狱就输出并结束程序 5. 如果不在就把他们互为敌人存下来 阅读全文
posted @ 2018-07-08 11:23 Nanchtiy 阅读(159) 评论(0) 推荐(0) 编辑