
算法笔记
文章平均质量分 78
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
戏说Trie字典树算法+Luogu2580 于是他错误的点名开始了
首先讲一下Trie这个东西(其实很简单) 在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。以上摘自百度百科 这就像英文字典一样,每个字母按照字典序排 举个例子,比如我们要插入几个字符串:原创 2017-03-15 19:57:59 · 575 阅读 · 0 评论 -
浅谈矩阵乘法
先来一段百科 矩阵乘法是一种高效的算法,可以把一些一维递推优化到log(n ),还可以求路径方案等,所以更是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。一个矩阵说穿了就是一个二维数组。一个n行m列的矩原创 2017-03-27 15:39:14 · 529 阅读 · 0 评论 -
字符串匹配-Kmp算法详解
OI竞赛中,字符串匹配也是一个比较有趣的东西 一般地,字符串匹配问题通常给出原串(String)与模式串(Pattern),要求输出模式串在原串中出现的起始位置。比如: 原串:abacaba 模式串:aca 答案就是3 今天我们来讨论只有两个串的情况(就是没有trie和AC自动机QAQ) 对于这种问题,我们有好几种方法来解决1.暴力只需暴力枚举起始位置,然后暴力判断,复杂度O(n*m)。原创 2017-03-14 12:50:41 · 421 阅读 · 0 评论 -
一种更高效的费用流算法——zkw费用流
orz原创者zkw%%% 送上zkw神犇的blog原址:传送门费用流建立在网络最大流的基础上,一张图中最大流有且仅有一个,但是最大流条数往往不止一条,这时候对于我们来说,可能要找出这些最大流中最小(或者最大)的那一条路径(贪心策略嘛),这就是最小(最大)费用最大流 ——以上就是定义嘛我们求费用流的算法也是非常多的,目前最流行的就是Edmond-Karp经过修改过后的费用流算法了,这个我就不多说了原创 2017-06-12 16:15:27 · 19169 阅读 · 9 评论 -
胜者树(线段树RMQ)——Luogu1816 忠诚
胜者树是一种特殊的线段树 这个东西支持查询区间查询极值,修改某值 听老师说这个东西可以代替二叉堆。。。 和线段树写法一样的 我们以找区间最小值为例 建树:void build(int l,int r,int nod){ if(l==r)t[nod]=a[l];//叶节点 else{ int m=(l+r)/2;//中间点 build(l,m,原创 2017-03-17 15:15:40 · 350 阅读 · 0 评论 -
浅谈主席树和区间第k值
主席树,是一种高级数据结构,是线段树的高级形式 主席树的全名应该叫做可持久化线段树 顾名思义,这种数据结构可以持久化,也即可查询历史记录 至于为什么要把这种数据结构叫做主席树,我就不多说了(我是不会告诉你我其实也不知道啊) 首先声明:本贴中的修改指单点修改我们先来说说主席树的来源吧。 一开始的关于记录历史记录(也就是可持久化)的做法是:建多个线段树分别存储,然后直接找对应的线段树即可 但原创 2017-04-05 14:46:48 · 998 阅读 · 0 评论 -
Codeforces Round #442 (Div. 2) 题解(877A~F)
比赛传送门 前几天并没有打这场比赛,但是听说这场题目蛮水的(我的一位初三dalao朋友直接AK了),所以昨天打了打Virtual participation 先上题解: A: 直接暴力枚举匹配即可,就是我写得麻烦了一点#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <ios原创 2017-10-29 22:00:00 · 343 阅读 · 0 评论 -
Codeforces Round #439 (Div. 2) 题解(869A,869B,869C,869E)
比赛传送门 A: 我们用s[i]s[i]表示ii这个数在2n个数中是否出现过 然后O(n2)O(n^2)枚举每种情况即可 要注意s数组一定要开到2∗max(x[i],y[i])2*max(x[i],y[i])左右,否则WA到你怀疑人生。。。#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#i原创 2017-10-07 12:26:20 · 322 阅读 · 0 评论 -
乱搞向——二维坐标系曼哈顿距离和切比雪夫距离转换的简要数学证明
当然这个东西有更好的解释方法。。。这里纯属娱乐233 说正事之前,先定义一些东西 定义a(x1,y1),b(x2,y2)(x1<=x2,y1<=y2)a(x1,y1),b(x2,y2)(x1<=x2,y1<=y2)a(x1,y1),b(x2,y2) (x1dist(a,b)dist(a,b)dist(a,b)表示i,j两点的曼哈顿距离注意:这不是在推出来两者的关...原创 2017-12-05 22:39:21 · 1734 阅读 · 0 评论