算法
Broken_String_
这个作者很懒,什么都没留下…
展开
-
【算法】数组模拟链表
数组模拟链表前言对于一个踏踏实实用数组的蒟蒻来说这真的是太难了好吗?步骤首先我们需要设一个数组date用来存原始数值和一个数组right充当指针 如图所示 这里的right指向date的下一位的date下标(注意是下标而不是数值)我们现在尝试模拟一下在排序下插入一个数值6 明显需要插在date{3}和date{4}之间 直接把date{10}赋值成6原创 2018-02-07 20:31:27 · 437 阅读 · 3 评论 -
【算法】不知道有啥用的拓扑排序
定义一共有好多件事情 事情A要再事情B(或者更多)事情做完才能做 然后排序! (有向无环图)思路一个网上找的图便于理解(下列过程以此图为例) 记录所有点的入度和出度找到入度为0的点加入栈中 为a栈顶元素输出删除并把与栈顶元素相连的点的入度减一删除过程中如果有入度为零的点也加入栈中直到输出的数等于n完成排序PS:如果输出的数小于n 说明此图有环例题...原创 2018-04-21 21:04:49 · 839 阅读 · 0 评论 -
【算法】欧拉筛找素数
思路从2开始找 找到一个加入素数表中 在之后的每一个数与前面找到素数表中的素数相乘的积也不是质数(任意一个合数是一个质数与一个数的积*)例题洛谷P3383:线性筛素数(可用埃筛做) https://www.luogu.org/problemnew/show/P3383代码:#include<iostream>using namespace st...原创 2018-04-19 21:32:25 · 366 阅读 · 0 评论 -
【算法】前向星存图
本文转自acdreamers的博客 原文网址: https://blog.csdn.net/ACdreamers/article/details/16902023我们首先来看一下什么是前向星.前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星...转载 2018-04-03 21:47:32 · 2352 阅读 · 1 评论 -
【板子】欧拉(回)路与哈密尔顿环
概念“哈密尔顿回路问题”是访问除原出发结点以外的每个结点一次且仅一次,而“欧拉回路问题”是访问每条边一次且仅一次欧拉回路与欧拉路PS:已经判断此图有欧拉路或欧拉回路#include<iostream>using namespace std;int g[101][101];int du[101];int lu[101];int n,e,l,start,x...原创 2018-03-31 21:31:37 · 415 阅读 · 0 评论 -
【算法】最小生成树的解法
最小生成树定义关于N个点用其中的N-1条边连起来的权值最小的图算法prim类似Dijkstra和贪心的思路 1. 取一个点为起点遍历所有与其连接的点 2. 把最小权值的点加入最小生成树 3. 修改于其相连的点权值 4. 重复1,2,3直到N次循环 例题: 洛谷P3366:最小生成树模板 https://www.luogu.org/prob...原创 2018-04-15 17:21:31 · 987 阅读 · 3 评论 -
【算法】无趣的并查集
并查集定义把许多有关系的人合并成一个集合 然后询问其中的人是否有关系的时候用并查集思路用树存图 每一次输入判断他们的祖先是否同一个 不同的话就把两个数的祖先改成同一个 最后的询问只要O(1)例子和代码一个入门的并查集题目 洛谷P1551:https://www.luogu.org/problemnew/show/P1551 代...原创 2018-04-15 10:24:34 · 240 阅读 · 0 评论 -
【板子】最短路径算法
最短路径算法FloyedPS:能求带负边图,但不能带负权回路 可以求出任意两点之间的最短路径 主代码:for(k=1;k<=n;k++)for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i!=j&&j!=k&&i!=k) dis[i][j]=min(dis[i][k]+dis[k...原创 2018-04-01 11:22:21 · 324 阅读 · 0 评论 -
【板子】背包九讲
背包九讲板子 例题参考《信息学奥赛一本通》初始化分两种情况 1、如果背包要求正好装满则初始化 f[0] = 0, f[1~v] = -INF; 2、如果不需要正好装满 f[0~v] = 0; 01背包有N件物品和一个容量为V的背包。第i件物品的费用(即体积,下同)是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容...原创 2018-03-11 09:59:03 · 355 阅读 · 0 评论 -
【板子】高精四则运算
高精度加法 #include<iostream> #include<cstring> #include<cstdio> using namespace std; char a[200],b[200]; int a1[200],b1[200],c1[200]; int l1,l2,l3; int...原创 2018-03-08 20:50:41 · 291 阅读 · 0 评论 -
【算法】网络流初涉
一些定义 最大流Ford-Fulkerson增广路取一条路径P由s—&gt;t 如果相对于P上的点连接的边方向与P相等 称作前向边P+ 如果相对于P上的点连接的边方向与P相反 称作后向边P- 满足所有P+ f[u][v]&lt;=c[u][v] P- f[u][v]&gt;0 (说明有流入) 则称为增广路步骤...原创 2018-05-27 16:57:56 · 252 阅读 · 0 评论