模板
文章平均质量分 67
熙言丶
这个作者很懒,什么都没留下…
展开
-
大数模板
#include<bits/stdc++.h>using namespace std;//大整数struct BigInteger{ static const int BASE=100000000;//和WIDTH保持一致 static const int WIDTH=8;//八位一存储,如修改记得修改输出中的%08d bool sign;//符号, ...原创 2018-08-22 12:49:23 · 159 阅读 · 0 评论 -
浅谈最小费用最大流
最大流的网络,可看作为辅送一般货物的运输网络,此时,最大流问题仅表明运输网络运输货物的能力,但没有考虑运送货物的费用。在实际问题中,运送同样数量货物的运输方案可能有多个,因此从中找一个输出费用最小的的方案是一个很重要的问题,这就是最小代价流所要讨论的内容。最小费用最大流问题的模型给定网络N=(V,E,c,w,s,t),每一弧(vi,vj)属于E上,除了已给容量cij外,还给了一个单位流量的费...原创 2018-08-18 10:18:24 · 378 阅读 · 0 评论 -
浅谈LCA(倍增)
LCA是啥呢 在一棵树当中 lca表示的是两个节点最近公共祖先, 大家看这课树哈节点5 ,3的lca就是1,13和11的LCA就是6。节点8,12的lca就是8,那么我们如何通过被增来实现LCA呢。首先请大家认真看下面的分析。depth[x],表示x节点的深度。大家看下这个数组 grand[x][i] ,这个数组表示标号为x节点向上跳2^i步的节点。例如grand[5][0]=2...原创 2018-08-16 12:04:31 · 435 阅读 · 0 评论 -
浅谈最大权闭合子图
闭合图:对于一个有向图G,存在点集合V,任取点u属于V,u的出边的另一个点也属于V,则为闭合图。理解:任取一起点,终点必定是无出度的点。最大权闭合子图:当每个点有一个权值w(有正有负),点权和最大的闭合图为最大权闭合子图。如图:最大权闭合子图为点集{3,4,5},最大权为7+0-3=4。求解方法:网络流。建立超级源点s,超级汇点t。所有点权为正数的点i,建边 s-&...原创 2018-08-15 21:05:06 · 331 阅读 · 0 评论 -
浅谈BSGS算法
引入BSGS算法,原名Baby Steps Giant Steps,又名大小步算法,拔山盖世算法,北上广深算法——by SLYZoier,数论基本算法之一。问题题解讨论转自 大佬博客【bsgs模板代码】map<ll,ll> vis;ll bsgs(ll a,ll b,ll p)//求解x,a^x%p=b%p{ vis.clear()...原创 2018-08-11 08:55:50 · 271 阅读 · 0 评论 -
浅谈莫队算法
我们首先来看一道例题:Description 有n个数字,给出k,以及m个查询。 每次查询的格式是L,r,求L~r(左右包含)这个区间内数字的出现次数刚好是k的数字种数。 范围:n<=30000,k<=n,m<=30000,1<=L<r<=n,数列中元素大小<=n。 输入n,k,m,然后n个元素,然后m行查询,对...原创 2018-08-08 10:13:43 · 253 阅读 · 0 评论 -
浅谈数位DP
基础篇 数位dp一般应用于: 求出在给定区间[A,B]内,符合条件P(i)的数i的个数. 条件P(i)一般与数的大小无关,而与 数的组成 有关.数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是...原创 2018-08-06 10:54:48 · 224 阅读 · 0 评论 -
浅谈单调队列
单调队列是指:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作。队列是一种先进先出(FIFO First In First Out)的数据结构,它类似于下面这幅图:队列的进出方式类似于平时我们排队打饭,来排队的人从队尾进入,打完饭的人从队头弹出。队列的在程序中储存的方式有很多,OI中最为常用的是使用头指针head和尾指针tail进行存储头指针指...原创 2018-08-05 10:12:22 · 23532 阅读 · 9 评论 -
浅谈Spfa
一、前言1、什么是spfa在很多的博客和百科里都有介绍比Dj算法更强大,比ford更省时间,这里就不多说了;2、为什么他能处理带负权的在每次碰到更优的解时,将下一个节点再次入队列,会按照路径顺次的优化之前的。而Dj算法后面的最优是建立在当前的,只能做加法,即使有更小的也不能回头了;3、什么是负环、怎样判断负环?所谓负环,不是带有负权的回路都是,而是回路的权值和为负数的才叫负环。判断...原创 2018-07-27 16:08:50 · 802 阅读 · 0 评论 -
浅谈链式前向星
我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了. 用len[i]来记录所有以i为起点的边在数组中的存储长度.用head[i]记录以i为边集在数组中的第一个存储位置. 那么对于下图: ...原创 2018-07-27 09:58:02 · 241 阅读 · 0 评论 -
Poor God Water (矩阵快速幂模板)
God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him that some sequence of eating will make them poisonous.Every hour, God Water will eat one kind of fo...原创 2018-09-18 16:49:57 · 439 阅读 · 0 评论 -
树的最小支配集、最小点覆盖、最大独立集【模板】
最小支配集:指从所有顶点中取尽量少的点组成一个集合,使得剩下的所有点都与取出来的点有边相连。顶点个数最小的支配集被称为最小支配集。这里用贪心法来求。1.以1号点深度优先搜索整棵树,求出每个点在DFS中的编号和每个点的父亲节点编号。 2.按DFS的反向序列检查,如果当前点既不属于支配集也不与支配集中的点相连,且它的父亲也不属于支配集,将其父亲点加入支配集,支配集个数加1。 3.标记当前结点、...原创 2018-11-10 21:06:42 · 309 阅读 · 0 评论 -
欧拉筛选+唯一分解(模板)
#include<bits/stdc++.h>#define MAXN 1000005using namespace std;typedef long long ll;ll prime[MAXN];ll vis[MAXN];ll cnt;ll n;void isprime(){ cnt=0; for(int i=2;i<=MAXN;i++)...原创 2018-11-02 22:05:22 · 514 阅读 · 3 评论 -
HUSTOJ特判程序Special Judge使用方法整理
Special Judge通常的ACM题目包括以下几项内容:题目描述(Description)、输入描述(Input)、输出描述(Output)、样例输入(Sample Input)、样例输出(Sample Out),在后台则包括测试输入(Input Data)和测试输出(Output Data)两项。在评测用户提交的程序正确与否时,系统会将样例输入和测试输入重定向作为程序的标准输入,通过判断...原创 2018-11-06 19:57:47 · 1276 阅读 · 1 评论 -
浅谈二分图匹配(匈牙利)
这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:设G=(V, E)是一个无向图。如果顶点集V可分割为两个互不相交的子集X和Y (图0),并且图中每条边连接的两个顶点...原创 2018-08-27 20:39:38 · 324 阅读 · 0 评论 -
浅谈KMP(模板)
S 表示原字符串,T 表示目标串(模式串),我们要在S 中搜索T。令 S[0..m-1] = abcabcabdabba, T[0..n-1] = abcabd。1,Naive 算法字符串匹配的naive 算法时O(n^2) 的:2,Naive 算法的问题与进化naive 算法的最大问题是,当一轮匹配过后,模式串T 又从头开始,实际上这回造成很多不必要的比较。我们看下面的情况:...原创 2018-09-18 16:36:57 · 186 阅读 · 0 评论 -
快速幂 矩阵快速幂模板
【快速幂】O(logn)时间复杂度int qpow(int base, int n){ int ans = 1; while(n) { if(n&1) ans*=base; base = base * base; n/=2; } return ans;}【矩阵快速幂】 该算法只适用于...原创 2018-09-18 16:54:45 · 1413 阅读 · 0 评论 -
字典树(模板)
字典树:很强大的数据结构,实现多个字符串的查找、对其个数的纪录以及对其子串的查询。这里讲下建树过程: 准备:MAX 记录总节点数目char str[1010][50];//输入的字符串集 int ch[MAX][30];//字典树的实现 int word[MAX];//记录当前节点下有多少个单词 int val[MAX];//标记单词节点 int sz;//节点数 初始...原创 2018-10-03 22:23:11 · 221 阅读 · 0 评论 -
Chip Factory(0 1字典树 删除 模板)
Chip Factory 时间限制: 5 Sec 内存限制: 128 MB ...原创 2018-10-03 22:27:42 · 223 阅读 · 0 评论 -
最小生成树模板
克鲁斯卡尔(Kruskal)#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<algorithm>using namespace std;#define MAX 1000int father[MAX], son[MAX...原创 2018-10-05 20:34:54 · 135 阅读 · 1 评论 -
最长上升子序列模板(二分优化)
普通的板子#include <iostream>#include <fstream>#include <cstdio>#include <cassert>#include <complex>#include <cmath>#include <algorithm>#include <原创 2018-10-07 11:20:48 · 587 阅读 · 0 评论 -
Cosmic Rays(最短路变形)
Cosmic Rays时间限制: 1 Sec 内存限制: 128 MB题目描述On the xy-plane, Snuke is going to travel from the point (xs,ys) to the point (xt,yt). He can move in arbitrary directions with speed 1. Here, we will con...原创 2018-05-30 20:45:09 · 368 阅读 · 0 评论 -
浅谈网络流
一.网络流:流&网络&割1.网络流问题(NetWork Flow Problem):给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow). 下面给出一个通俗点的解释(下文基本避开形式化的证明 基本都用此类描述叙述)好比你家是汇 自来水厂(有需要的...原创 2018-08-15 16:16:31 · 284 阅读 · 0 评论 -
sg函数模板(打表)
#include <bits/stdc++.h>#define N 200005using namespace std;typedef long long ll;const int maxn = 1000;const int k = 1000;int sg[maxn] , Hush[maxn];//sg[n] n表示每堆数量int s[k];//可以取走的石子个数,...原创 2018-10-30 16:19:52 · 951 阅读 · 0 评论 -
小乐乐下象棋(暴力/BFS/DFS)
小乐乐下象棋题目描述小乐乐一天天就知道玩,这一天又想玩象棋。我们都知道马走日。现在给定一个棋盘,大小是n*m,把棋盘放在第一象限,棋盘的左下角是(0,0),右上角是(n - 1, m - 1);小乐乐想知道,一个马从左下角(0, 0)开始,走了k步之后,刚好走到右上角(n - 1, m - 1)的方案数。...原创 2018-12-02 22:40:56 · 402 阅读 · 0 评论