算法
桂十三
这个作者很懒,什么都没留下…
展开
-
二分图最大权匹配(KM算法)模板 HDU2255
讲解链接https://www.cnblogs.com/logosG/p/logos.html#include <bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3ftypedef long long ll;const int maxn = 100010;/* KM 算法*复杂度 O(nx*nx*ny)...原创 2019-10-25 18:33:29 · 316 阅读 · 0 评论 -
LCA最近公共祖先(Tarjan离线算法)详解(转)
转自https://www.cnblogs.com/ECJTUACM-873284962/p/6613379.html 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主...转载 2018-08-02 11:23:06 · 190 阅读 · 0 评论 -
链式前向星详解(转)
转自我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了. 用len[i]来记录所有以i为起点的边在数组中的存储长度.用head[i]记录以i为边集在数组中的第一个存储位置. 那么对于下图:...转载 2018-08-02 14:40:28 · 477 阅读 · 0 评论 -
划分树 详解(转)
&amp;lt;div class=&quot;markdown_views&quot;&amp;gt; &amp;lt;p&amp;gt;看了一些博客,感觉有些博客对建树写的挺好,但是对于查询区间却一笔带过。在看懂了之后决定自己写一篇,加深自己的理解,也希望对正在学习划分树的人能够有所帮助。 &amp;lt;br&amp;g转载 2018-08-07 15:12:27 · 447 阅读 · 0 评论 -
最小树形图(朱刘算法)(poj 3164)
题目链接 ommand NetworkTime Limit: 1000MS Memory Limit: 131072K Total Submissions: 20041 Accepted: 5...原创 2018-08-08 10:10:55 · 214 阅读 · 0 评论 -
矩阵快速幂 Count
附dalao博客地址:https://blog.csdn.net/zcy19990813/article/details/88720995首先还是先看一下什么是快速幂https://www.cnblogs.com/CXCXCXC/p/4641812.html矩阵快速幂讲解https://blog.csdn.net/wust_zzwh/article/details/52058209...原创 2019-03-21 20:30:40 · 218 阅读 · 0 评论 -
匈牙利算法(二分图的最大匹配)
超易懂讲解博客:https://blog.csdn.net/dark_scope/article/details/8880547模板:题目链接#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<queue>#in...原创 2019-03-26 16:35:08 · 203 阅读 · 2 评论 -
最短路模板(Dijkstra、Floyd、Bellman-Ford、SPFA)
模板测试题目:http://acm.hdu.edu.cn/showproblem.php?pid=2544Floyd#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#define inf 0x3f3f3f3fusing namespa...原创 2019-07-31 09:25:06 · 200 阅读 · 0 评论 -
KMP 详解+模板
详解#include<iostream>#include<algorithm>#include <cstring>#include <string>#include<cstdio>using namespace std;int next[1000],num=0;void GetNextval(char* p, int...原创 2019-08-04 10:28:18 · 190 阅读 · 0 评论 -
凸包(讲解+模板+例题)
凸包讲解例题POJ 2187模板#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>using namespace std;struct node{ int x,y;};node...转载 2019-07-31 16:10:16 · 841 阅读 · 1 评论 -
POJ1330-LCA最近公共祖先(Tarjan算法模板代码)
转自:https://blog.csdn.net/Akatsuki__Itachi/article/details/81279173题目链接 poj1330关于LCA的Tarjan算法详解可看https://blog.csdn.net/Septembre_/article/details/81355594以下是根据算法自行写的模板代码:#include<io...原创 2018-08-02 11:18:32 · 209 阅读 · 0 评论 -
Color the ball (树状数组,改段求点)
N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?Input每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数...原创 2018-08-01 11:00:26 · 111 阅读 · 0 评论 -
尺取详解 (Subsequence)
有这么一类问题,需要在给的一组数据中找到不大于某一个上限的“最优连续子序列”于是就有了这样一种方法,找这个子序列的过程很像毛毛虫爬行方式比较流行的叫法是“尺取法”。Poj3061 给长度为n的数组和一个整数m,求总和不小于m的连续子序列的最小长度输入n = 10,m = 155 1 3 5 10 7 4 9 2 8输出2那么我们先用sum存当前这个子序列...原创 2018-07-17 17:51:15 · 343 阅读 · 0 评论 -
最短的包含字符串 (尺取)
给出一个字符串,求该字符串的一个子串s,s包含A-Z中的全部字母,并且s是所有符合条件的子串中最短的,输出s的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。Input第1行,1个字符串。字符串的长度 <= 100000。Output输出包含A-Z的最短子串s的长度。如果没有符合条件的子串,则输出No Solution。Sample In...原创 2018-07-17 19:20:42 · 392 阅读 · 0 评论 -
与7无关的数(前缀和)
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7无关的正整数的平方和。例如:N = 8,<= 8与7无关的数包括:1 2 3 4 5 6 8,平方和为:155。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 &...原创 2018-07-17 21:10:07 · 525 阅读 · 0 评论 -
LIS LCS (最长上升子序列,最长公共子序列)
LIS 最长上升子序列#include <iostream>#include <algorithm>using namespace std;int a[1001],ans[1001],len;int main(){ int n,T; cin>>T; while(T--) { cin>&g...原创 2018-07-23 17:29:58 · 288 阅读 · 0 评论 -
背包详解(0-1背包,完全背包,多重背包)
0-1背包:就是给定n个物品(每个物品只有一件),和一个容量为C的背包,每个物品的价值为v,重量为w,每个物品只可以选择放入(1)或不放入(0),让背包中的物品价值最大。例如:一个背包容量为C=10,有n=5个物品。价值v 6 3 5 4 6 重量w 2 2 6 5 4 用子问题定义状态,即前i件物品恰好放入一个...原创 2018-07-19 11:47:45 · 1702 阅读 · 0 评论 -
线段树习题集(模板)
I Hate It 暑假训练7.30——(基础线段树)(B)很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管...原创 2018-07-30 16:19:24 · 198 阅读 · 0 评论 -
离散化(模板)
离散化是什么:一些数字,他们的范围很大(0-1e9),但是个数不算多(1-1e5),并且这些数本身的数字大小不重要,重要的是这些数字之间的相对大小(比如说某个数字是这些数字中的第几小,而与这个数字本身大小没有关系,要的是相对大小)(6 8 9 4 离散化后即为 2 3 4 1)(要理解相对大小的意思)(6在这4个数字中排第二小,那么就把6离散化成2,与数字6本身没有关系, 8,9,4亦是如此)...原创 2018-08-04 10:49:58 · 355 阅读 · 0 评论 -
二分and三分
lower_bound(起始地址,结束地址,要查找的数值)返回大于或等于val的第一个元素位置upper_bound(起始地址,结束地址,要查找的数值)返回大于val的第一个元素位置binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在这么一个数,是一个bool值。部分转载自: https://www.cnblogs.com/whywhy/p/...原创 2018-08-04 11:06:45 · 153 阅读 · 0 评论 -
树状数组(逆序对)(模板)
举个例子加以说明: 例子来源 假设给定的序列为 4 3 2 1,我们从左往右依次将给定的序列输入,每次输入一个数temp时,就将当前序列中大于temp的元素的个数计算出来,并累加到ans中,最后ans就是这个序列的逆序数个数。 序列的变化(下划线为新增加元素) 序列中大于新增加的数字的个数 操作 { }...原创 2018-07-31 11:09:00 · 246 阅读 · 0 评论 -
KMP
转载自 https://blog.csdn.net/starstar1992/article/details/54913261目录(?)[+]说明KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里糊涂,即使网上最简单的解释,依然看的稀里糊涂。 我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。 这里不扯概念,只讲算法过程和代码理解:KMP算法求解什么类...转载 2018-04-03 20:15:49 · 209 阅读 · 0 评论