01 2019 档案

摘要:大家好,我是左程云。我本科就读于华中科技大学、硕士毕业于在芝加哥大学。先后在IBM、百度、GrowingIO和亚马逊工作,是一个刷题7年的算法爱好者,也是牛客网的老师。2014年起专职做程序员算法和数据结构培训,代码面试培训,刷题交流等相关工作。 大家好,我是左程云。我本科就读于华中科技大学、硕士毕 阅读全文
posted @ 2019-01-30 10:37 DWVictor 阅读(834) 评论(0) 推荐(1)
摘要:KMP算法应该是每一本《数据结构》书都会讲的,算是知名度最高的算法之一了,但很可惜,我大二那年压根就没看懂过~~~ 之后也在很多地方也都经常看到讲解KMP算法的文章,看久了好像也知道是怎么一回事,但总感觉有些地方自己还是没有完全懂明白。这两天花了点时间总结一下,有点小体会,我希望可以通过我自己的语言 阅读全文
posted @ 2019-01-27 22:43 DWVictor 阅读(2700) 评论(1) 推荐(1)
摘要:参考https://www.cnblogs.com/vb4896/p/6149022.html 1、线性基: 若干数的线性基是一组数a1,a2,...ana1,a2,...an,其中axax的最高位的11在第xx位。 通过线性基中元素xorxor出的数的值域与原来的数xorxor出数的值域相同。 2 阅读全文
posted @ 2019-01-27 17:37 DWVictor 阅读(592) 评论(0) 推荐(0)
摘要:kmp 扩展kmp 阅读全文
posted @ 2019-01-27 17:31 DWVictor 阅读(307) 评论(0) 推荐(0)
摘要:从头到尾彻底理解KMP 从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会 阅读全文
posted @ 2019-01-27 17:30 DWVictor 阅读(602) 评论(0) 推荐(0)
摘要:介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态分配数组来存储它的元 阅读全文
posted @ 2019-01-27 17:24 DWVictor 阅读(234) 评论(0) 推荐(0)
摘要:前缀和是一种重要的预处理,能大大降低查询的时间复杂度。 最简单的一道题就是给定 n 个数和 m 次询问,每次询问一段区间的和。求一个 O(n + m) 的做法。 用 O(n) 前缀和预处理,O(m) 询问。 主要代码 升级版 给定一个n*n的矩阵,找一个最大的子矩阵,使得这个子矩阵里面的元素和最大。 阅读全文
posted @ 2019-01-27 14:26 DWVictor 阅读(649) 评论(0) 推荐(1)
摘要:用途: 解决单源最短路径问题(已固定一个起点,求它到其他所有点的最短路问题) 算法核心(广搜): (1)确定的与起点相邻的点的最短距离,再根据已确定最短距离的点更新其他与之相邻的点的最短距离。 (2)之后的更新不需要再关心最短距离已确定的点 三种实现模板: 一、矩阵朴素版 二、vector简单版 三 阅读全文
posted @ 2019-01-27 11:46 DWVictor 阅读(380) 评论(0) 推荐(0)
摘要:题目题目描述贝茜在谷仓外的农场上,她想回到谷仓,在第二天早晨农夫约翰叫她起来挤奶之前尽可能多地睡上一觉.由于需要睡个好觉,贝茜必须尽快回到谷仓.农夫约翰的农场上有N(2≤N≤1000)个路标,每一个路标都有唯一的编号(1到N).路标1是谷仓,路标N是贝茜一整天呆在那里的果树园.农场的所有路标之间共有 阅读全文
posted @ 2019-01-27 11:44 DWVictor 阅读(295) 评论(0) 推荐(0)
摘要:此题题意很好懂: 给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c。 需要用到线段树的,update:成段增减,query:区间求和 介绍Lazy思想:lazy-tag思想,记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我 阅读全文
posted @ 2019-01-26 20:16 DWVictor 阅读(325) 评论(0) 推荐(0)
摘要:详细请看https://www.cnblogs.com/DWVictor/p/10279720.html 线段树的入门级 总结 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间 阅读全文
posted @ 2019-01-26 20:15 DWVictor 阅读(393) 评论(0) 推荐(0)
摘要:一共有n件食材,每件食材有三个属性,ai,bi和ci,如果在t时刻完成第i样食材则得到ai-t*bi的美味指数,用第i件食材做饭要花去ci的时间。输出最大美味指数 【数据范围】 对于40%的数据1<=n<=10 对于100%的数据1<=n<=50 所有数字均小于100,000 思路:看了51nod贪 阅读全文
posted @ 2019-01-26 20:11 DWVictor 阅读(204) 评论(0) 推荐(0)
摘要:线段树原理 线段树是一颗二叉树,他的每个节点对应的都是一个区间,主要是通过对区间的分割和合并来修改节点的值, 然后再得到答案。 现在给你一个 目的为求区间和 所造出来的线段树 线段树。如下图所示。 仔细观察,第一二三行方框内的值是他的下面2个子区间的和, 第四行的方框内的数字代表的是自身的值, 蓝色 阅读全文
posted @ 2019-01-26 20:07 DWVictor 阅读(296) 评论(0) 推荐(0)
摘要:#include using namespace std; int pre[1010]; bool t[1010];//t 用于标记独立块的根结点 int find(int x)//查找根节点 { int r=x; while(pre[r]!=r) r=pre[r];//返回根节点 r int i=x,j; while(pre[i... 阅读全文
posted @ 2019-01-25 23:37 DWVictor 阅读(255) 评论(0) 推荐(0)
摘要:int T[maxn],a[maxn]; void build(int rt,int l,int r){ if(l == r){ T[rt] = a[l]; return; } int mid = l+r >> 1; build(rt<<1,l,mid); build(rt<<1|1,mid+1,r 阅读全文
posted @ 2019-01-25 21:20 DWVictor 阅读(251) 评论(0) 推荐(0)
摘要:一、概念 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。如果这组数有n个,那么全排列数为n!个。 比如a,b,c的全排列一共有3!= 6 种 分别是{a, b, c}、{a, c, b}、{b, a, c 阅读全文
posted @ 2019-01-25 16:59 DWVictor 阅读(1466) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2019-01-25 16:50 DWVictor 阅读(8) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qaq__qaq/article/details/53812883 (那个板子有错误,。。 阅读全文
posted @ 2019-01-24 22:00 DWVictor 阅读(100) 评论(0) 推荐(0)
摘要:1、线性基: 若干数的线性基是一组数a1,a2,...ana1,a2,...an,其中axax的最高位的11在第xx位。 通过线性基中元素xorxor出的数的值域与原来的数xorxor出数的值域相同。 2、线性基的构造法: 对每一个数pp从高位到低位扫,扫到第xx位为11时,若axax不存在,则ax 阅读全文
posted @ 2019-01-24 21:58 DWVictor 阅读(234) 评论(0) 推荐(0)
摘要:fabs() 面向实数取绝对值 abs() 返回int 阅读全文
posted @ 2019-01-24 21:47 DWVictor 阅读(199) 评论(0) 推荐(0)
摘要:使用方法:nth_element(start, start+n, end) 使第n大元素处于第n位置(从0开始,其位置是下标为n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的。 #include <algorithm> #includ 阅读全文
posted @ 2019-01-24 21:45 DWVictor 阅读(2502) 评论(0) 推荐(0)
摘要:前缀和是一种重要的预处理,能大大降低查询的时间复杂度。 最简单的一道题就是给定 n 个数和 m 次询问,每次询问一段区间的和。求一个 O(n + m) 的做法。 用 O(n) 前缀和预处理,O(m) 询问。 主要代码 升级版 给定一个n*n的矩阵,找一个最大的子矩阵,使得这个子矩阵里面的元素和最大。 阅读全文
posted @ 2019-01-22 00:57 DWVictor 阅读(160) 评论(0) 推荐(0)
摘要:高玩小Q不仅喜欢玩寻宝游戏,还喜欢一款升级养成类游戏。在这个游戏的世界地图中一共有n个城镇,编号依次为1到n。 这些城镇之间有m条单向道路,第i 条单项道路包含四个参数ui,vi,ai,bi,表示一条从ui号城镇出发,在vi号城镇结束的单向道路,因为是单向道路,这不意味着小Q可以从vi沿着该道路走到 阅读全文
posted @ 2019-01-22 00:47 DWVictor 阅读(196) 评论(0) 推荐(0)
摘要:std::pair是二元组类模板,就是表示两种相互关联的事物。make_pair实际上是一个创建二元组的便利函数模板,这里用到了C++函数模板的模板参数可省略的特性,不使用这个函数模板的话,每次你要创建一个二元组必须写明模板参数。 如: 1 2 std::pair<char, int> a( 'a' 阅读全文
posted @ 2019-01-22 00:44 DWVictor 阅读(1230) 评论(0) 推荐(0)
摘要:全排列 https://www.cnblogs.com/DWVictor/p/10301666.html #include <bits/stdc++.h> using namespace std; int dir[4][2]={1,0,-1,0,0,1,0,-1}; int Hash[4]; cha 阅读全文
posted @ 2019-01-22 00:37 DWVictor 阅读(272) 评论(0) 推荐(0)
摘要:目标 STL中的next_permutation 函数和 prev_permutation 两个函数提供了对于一个特定排列P,求出其后一个排列P+1和前一个排列P-1的功能。 这里我们以next_permutation 为例分析STL中实现的原理,prev_permutation 的原理与之类似,我 阅读全文
posted @ 2019-01-22 00:35 DWVictor 阅读(3118) 评论(0) 推荐(2)
摘要:memset(a,127,sizeof(a)); 即得到无穷大。 memset(a,128,sizeof(a)); 即得到无穷小,与上述的值互为相反数。 memset(a,60,sizeof(a)); 即近似为第一个式子的数值的一半。 memset(a,0,sizeof(a));赋值0 memset(a,-1,sizeof(a));赋值-1 阅读全文
posted @ 2019-01-20 16:30 DWVictor 阅读(940) 评论(0) 推荐(0)
摘要:void Add(int u,double cost,int v)//邻接表存储关系 { w[top] = cost; Key[top] = v; next[top] = head[u]; head[u] = top++; } bool SPFA(int x) { memset(vis,false, 阅读全文
posted @ 2019-01-20 14:01 DWVictor 阅读(419) 评论(0) 推荐(0)
摘要:#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int INF=0x3f3f3f3f; const int N=210; int n,m,s,t; int map[N][N],dis[N 阅读全文
posted @ 2019-01-20 13:38 DWVictor 阅读(224) 评论(0) 推荐(0)
摘要:#include<stdio.h> #include<iostream> #include<queue> using namespace std; #define N 205 #define INF 99999999 int n,m,map[N][N]; int visited[N],dis[N]; 阅读全文
posted @ 2019-01-20 13:38 DWVictor 阅读(275) 评论(0) 推荐(0)
摘要:刘汝佳 #include<cstdio> #include<cstring> #include<vector> #include<algorithm> #include<queue> using namespace std; #define INF 1e8 const int maxn = 200+ 阅读全文
posted @ 2019-01-20 13:37 DWVictor 阅读(260) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/weixin_43272781/article/details/83515067 https://blog.csdn.net/weixin_43272781/article/details/83418431 阅读全文
posted @ 2019-01-17 17:15 DWVictor 阅读(206) 评论(0) 推荐(0)
摘要:想了解更多:click here... HERE.. 一、最短路径 ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径。 AE:1 ADE:2 ADCE:3 ABCE:3 ②在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径。 AE:100 ADE:90 ADCE:60 ABCE:7 阅读全文
posted @ 2019-01-17 17:13 DWVictor 阅读(2794) 评论(0) 推荐(1)
摘要:不用说这两位都是冷门算法……毕竟O(n^3)的时间复杂度算法在算法竞赛里基本算是被淘汰了……而且也没有在这个算法上继续衍生出其他的算法… 有兴趣的话:click here.. 话说学离散的时候曾经有个把warshall算法简化到1/2时间的想法……不过懒得去翻了,现在想想本来这两个不用矩阵而用位运算 阅读全文
posted @ 2019-01-17 17:11 DWVictor 阅读(2606) 评论(0) 推荐(0)
摘要:一、圆周率π计算 二、数学公式 π = 2 + 1/3 * (2 + 2/5 * (2 + 3/7 * (2 + ... (2 + k/2k+1 * (2 + ... ))...))) 三、分析 要想计算出无限精度的PI,我们需要上述的迭代公式运行无数次,并且其中每个分数也是完全精确的,这在计算机中 阅读全文
posted @ 2019-01-17 17:09 DWVictor 阅读(5032) 评论(0) 推荐(0)
摘要:【解题思路】 给一张神图,推理写的灰常明白了,关键是构造共轭函数,这一点实在是要有数学知识的理论基础,推出了递推式,接下来就是矩阵的快速幂了。 神图: 给个大神的链接:构造类斐波那契数列的矩阵快速幂 /* * Problem: HDU No.4565 * Running time: 62MS * C 阅读全文
posted @ 2019-01-17 17:06 DWVictor 阅读(310) 评论(0) 推荐(0)
摘要:题目:HDU4565 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4565 题意: 求 f(x) = ceil( (a +sqrt(b))^n ) 我们设An = (a +sqrt(b))^n , Bn =(a - sqrt(b))^n; Cn = 阅读全文
posted @ 2019-01-17 17:03 DWVictor 阅读(801) 评论(0) 推荐(0)
摘要:题目描述 Description 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn m, a, c, x0, n, g<=10^18 输入描述 Input Description 一行六个数 m, a, c, x0, n, g 输出描述 Out 阅读全文
posted @ 2019-01-17 17:02 DWVictor 阅读(700) 评论(0) 推荐(0)
摘要:gcd欧几里德算法 求取最大公约数gcd(a,b) 这个不用多说了 extgcd拓展欧几里德算法 用于求解 ax+by=gcd(a,b)的解 这个要多说一下 ax+by=c,(a,b,c都是常数) 这就是一个直线方程嘛!(x,y)就是一条直线的轨迹 但是呢 我们在计算机中经常要求一些离散的东西,也就 阅读全文
posted @ 2019-01-17 17:01 DWVictor 阅读(799) 评论(0) 推荐(0)
摘要:题目如下:A straight is a poker hand containing five cards of sequential rank, not necessarily to be the same suit. For example, a hand containing 7 club, 阅读全文
posted @ 2019-01-17 17:00 DWVictor 阅读(479) 评论(0) 推荐(0)
摘要:摔手机 摔手机 动态规划 在蓝桥杯的时候遇到一次 当时没有做对 看了题解也没明白 如今再次遇到这个类似的题目 于是拿出来补补吧摔手机题目如下:星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一 阅读全文
posted @ 2019-01-17 17:00 DWVictor 阅读(1655) 评论(4) 推荐(0)
摘要:费了好大劲写完的 用线段树维护的 nlogn的做法再看了一下 大神们写的 nlogn 额差的好远我写的又多又慢 大神们写的又少又快时间 空间 代码量 哪个都赶不上大佬们的代码 //这是大神们的 #include<stdio.h> #include<string.h> #include<iostrea 阅读全文
posted @ 2019-01-17 16:59 DWVictor 阅读(413) 评论(0) 推荐(0)
摘要:输入挂 比一般的输入挂还快一些 但这个输入挂使用了之后就不能再使用其它的输入函数了 typedef long long LL; namespace IStream { const int L = 1 '9'); c = get_char()); if (c == EOF) return EOF; if (c == '-') { sgn = -1; ... 阅读全文
posted @ 2019-01-17 16:59 DWVictor 阅读(186) 评论(0) 推荐(0)
摘要:const int POW = 18; void dfs(int u,int fa){ d[u]=d[fa]+1; p[u][0]=fa; for(int i=1;i d[b] ) a ^= b, b ^= a, a ^= b; if( d[a] = 0; i-- ) if( p[a][i] != p[b][i] ) a = p[a][i] , b = p[b][i]; a... 阅读全文
posted @ 2019-01-17 16:58 DWVictor 阅读(194) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std; struct node{ int v[26],p; void init(){memset(v,0,sizeof(v));p=0;} }t[1001000]; char str[15],mm[15]; int cnt; void update(int &rt,int k,int c){... 阅读全文
posted @ 2019-01-17 16:57 DWVictor 阅读(287) 评论(0) 推荐(0)
摘要:参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 nn 个深埋在地下的宝藏屋, 也给出了这 nn 个宝藏屋之间可供开发的mm 条道路和它们的长度。 小明决心亲自前往挖掘所有宝藏屋中的宝藏。但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 阅读全文
posted @ 2019-01-17 16:56 DWVictor 阅读(732) 评论(0) 推荐(0)
摘要://splay模版 #include #include #include #include #include #include using namespace std; #define MAX 500100 int root=0,N,tot=0; inline int read() { register int x=0,t=1; register char ch=... 阅读全文
posted @ 2019-01-17 16:56 DWVictor 阅读(217) 评论(0) 推荐(0)
摘要:#include #include #include #include #include using namespace std; const int maxn = 1e6+7; char str[maxn]; int sa[maxn],tp[maxn],rak[maxn],tax[maxn],a[maxn],M,N; // sa代表着 排名第i小的下标是什么 // rak 代表 下标为i... 阅读全文
posted @ 2019-01-17 16:56 DWVictor 阅读(214) 评论(0) 推荐(0)
摘要:今天被拓展二进制搞了 可怜我还做题时 还说这题一定不是数位dp直接被打脸了 #1331 : 扩展二进制数 #1331 : 扩展二进制数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 我们都知道二进制数的每一位可以是0或1。有一天小Hi突发奇想:如果允许使用数字2会发生 阅读全文
posted @ 2019-01-17 16:55 DWVictor 阅读(576) 评论(0) 推荐(0)
摘要:题目描述 永无乡包含 nn 座岛,编号从 11 到 nn ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 nn 座岛排名,名次用 11 到 nn 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 aa 出发经过若干座(含 00 座)桥可以 到达岛 bb ,则称岛 a 阅读全文
posted @ 2019-01-17 16:54 DWVictor 阅读(306) 评论(0) 推荐(0)
摘要:ZOJ Problem Set - 4053 CouleurTime Limit: 6 Seconds Memory Limit: 131072 KB DreamGrid has an array of integers. On this array he can perform the follo 阅读全文
posted @ 2019-01-17 16:53 DWVictor 阅读(396) 评论(0) 推荐(0)
摘要:题意 是 有n个花园 一个花园内所有的花的颜色都是一样的 有很多种不同的颜色 花园到花园之间有路,走不同的路有不同的代价 如果选一个点作为起点 只走小于等于w的路 可以经过的这些花园里 那种颜色最多 多组询问 强制在线 解法 对于这个影响这个答案有两个因素 不可以把所有答案求出 一个一个求的话复杂度 阅读全文
posted @ 2019-01-17 16:52 DWVictor 阅读(437) 评论(0) 推荐(0)
摘要:题目描述 Description 有 N ( <=20 ) 台 PC 放在机房内,现在要求由你选定一台 PC,用共 N-1 条网线从这台机器开始一台接一台地依次连接他们,最后接到哪个以及连接的顺序也是由你选定的,为了节省材料,网线都拉直。求最少需要一次性购买多长的网线。(说白了,就是找出 N 的一个 阅读全文
posted @ 2019-01-17 16:41 DWVictor 阅读(475) 评论(0) 推荐(0)
摘要:1022 覆盖 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 时间限 阅读全文
posted @ 2019-01-17 16:39 DWVictor 阅读(249) 评论(0) 推荐(0)
摘要:预处理 二维数组 map[N][N];用来记录两点是否可以链接 一维数组 link[N];用来记录有哪个点占用了哪个点 一维数组 ok[N];判断点是否被用过 bool dfs(int a) { for(int i=0;i<N;i++)遍历后数组寻找有是否可以相连的 { 如果 没有相连并且没有被用过 阅读全文
posted @ 2019-01-17 16:37 DWVictor 阅读(289) 评论(0) 推荐(0)
摘要:首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配 阅读全文
posted @ 2019-01-17 16:36 DWVictor 阅读(379) 评论(0) 推荐(0)
摘要:【八数码问题】//https://vijos.org/p/1360 https://blog.csdn.net/u012283461/article/details/79078653 阅读全文
posted @ 2019-01-17 16:36 DWVictor 阅读(356) 评论(0) 推荐(0)
摘要:一、基本概述在数论,对正整数n,欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 二、计算公式 三、基本性质欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的 阅读全文
posted @ 2019-01-17 16:34 DWVictor 阅读(3759) 评论(2) 推荐(1)
摘要:https://www.luogu.org/problemnew/show/P1040 题解:这个题可以用动态规划或者记忆化搜索来做。因为如果要求加分最大的话,必须要求它的儿子结点加分最大,所以就有了最优子阶段。我们可以枚举根来更新最大值。中序遍历有个特点,在中序遍历这个序列上,某个点左边的序列一定 阅读全文
posted @ 2019-01-17 16:29 DWVictor 阅读(580) 评论(0) 推荐(0)
摘要:在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过 阅读全文
posted @ 2019-01-17 16:28 DWVictor 阅读(1476) 评论(0) 推荐(0)
摘要:生成树的概念 在一个任意连通图G中,如果取它的全部顶点和一部分边构成一个子图G',即:V(G')=V(G)和E(G')⊆E(G) 若同时满足边集E(G')中的所有边既能够使全部顶点连通而又不形成任何回路,则称子图G'是原图G的一棵生成树。 下面简单说明一下,在既能够连通图G中的全部n个顶点又没有形成 阅读全文
posted @ 2019-01-17 16:22 DWVictor 阅读(449) 评论(0) 推荐(0)
摘要:分类:单源最短路径算法。 适用于:稀疏图(侧重于对边的处理)。 优点:可以求出存在负边权情况下的最短路径。 缺点:无法解决存在负权回路的情况。 时间复杂度:O(NE),N是顶点数,E是边数。(因为和边有关,所以不适于稠密图) 算法思想:很简单。一开始认为起点是“标记点”(dis[1] = 0),每一 阅读全文
posted @ 2019-01-17 16:08 DWVictor 阅读(1652) 评论(0) 推荐(2)
摘要:适用于:稀疏图(侧重于对边的处理)。 时间复杂度:O(KE),K是常数,平均值为二,E是边数。(因为和边有关,所以不适于稠密图) 来源:SPFA是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。 这个算法简单地说就是队列优化的Bellman-Ford,利用了每个点不会更新次数太多 阅读全文
posted @ 2019-01-17 16:07 DWVictor 阅读(547) 评论(0) 推荐(0)
摘要:基本思想 建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 算法原理 归并操作指的是将两个已经排序的序列合并成一个序列的操作,归并操作步骤如下: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针, 阅读全文
posted @ 2019-01-17 16:05 DWVictor 阅读(1004) 评论(0) 推荐(0)
摘要:并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 这样说可能不是很易懂,来看一道例题:题目链接 poj2524 当今世界上有许多不同的宗教,要了解它们是很困难的。你想知道你 阅读全文
posted @ 2019-01-17 15:56 DWVictor 阅读(270) 评论(0) 推荐(0)
摘要:Kruskal算法 1.概览 Kruskal算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪婪算法的应用。和Boruvka算法不同的地方是,Kruskal算法在图中存在相同权值的边时也有效。 阅读全文
posted @ 2019-01-17 15:54 DWVictor 阅读(3587) 评论(0) 推荐(1)
摘要:Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼 阅读全文
posted @ 2019-01-16 22:12 DWVictor 阅读(1750) 评论(0) 推荐(1)
摘要:离散化,就是把一些很离散的点给重新分配。举个例子,如果一个坐标轴很长(>1e10),给你1e4个坐标,询问某一个点,坐标比它小的点有多少。 很容易就知道,对于1e4个点,我们不必把他们在坐标轴上的位置都表示出来,因为我们比较有多少比它小的话,只需要知道他们之间的相对大小就可以,而不是绝对大小,这,就 阅读全文
posted @ 2019-01-16 22:08 DWVictor 阅读(340) 评论(0) 推荐(0)
摘要:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=1000 阅读全文
posted @ 2019-01-16 22:02 DWVictor 阅读(149) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3790 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input 输入n,m,点的编号是1~n,然后是m行,每 阅读全文
posted @ 2019-01-16 21:59 DWVictor 阅读(158) 评论(0) 推荐(0)
摘要:问题描述 对于一串数A={a1a2a3…an},它的子序列为S={s1s2s3…sn},满足{s1<s2<s3<…<sm}。求A的最长子序列的长度。 动态规划法 算法描述: 设数串的长度为n,L[i]为以第i个数为末尾的最长上升子序列的长度,a[i]为数串的第i个数。 L[i]的计算方法为:从前i- 阅读全文
posted @ 2019-01-16 21:56 DWVictor 阅读(727) 评论(0) 推荐(1)
摘要:1、哈夫曼树的基本概念 哈夫曼(Huffman)树又称作最优二叉树,它是n个带权叶子结点构成的所有二叉树中,带权路径长度最小的二叉树。 “路径”就是从树中的一个结点到另一个结点之间的分支构成的部分,而分支的数目就是路径长度。 树的路径长度:就是从树根到每一结点的路径长度之和。 考虑带权的结点,结点的 阅读全文
posted @ 2019-01-16 21:53 DWVictor 阅读(626) 评论(0) 推荐(0)
摘要:一.概述 加权无向图是一种在无向图的基础上,为每条边关联一个权值或是成本的图模型.应用可以有很多:例如在一幅航空图中,边表示导线,权值则表示导线的长度或是成本等. 图的生成树是它的一颗含有其所有顶点的无环连通子图,一幅加权图的最小生成树(MST)是它的一颗权值(树中的所有边的权值之和)最小的生成树. 阅读全文
posted @ 2019-01-16 21:49 DWVictor 阅读(770) 评论(0) 推荐(0)
摘要:一下两种方法掌握一种即可 一.前向星建图 /** /*向前星 /*@Victor */ const int MX = 1e5 +5; const int ME = 2e5 + 5; struct edge{ int v ,w ; int nxt; edge(){} edge(int _v, int 阅读全文
posted @ 2019-01-16 21:47 DWVictor 阅读(342) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-01-16 21:31 DWVictor 阅读(6) 评论(0) 推荐(0)
摘要:1、前向星 前向星是以存储边的方式来存储图,先将边读入并存储在连续的数组中,然后按照边的起点进行排序,这样数组中起点相等的边就能够在数组中进行连续访问了。它的优点是实现简单,容易理解,缺点是需要在所有边都读入完毕的情况下对所有边进行一次排序,带来了时间开销,实用性也较差,只适合离线算法。图一-2-4 阅读全文
posted @ 2019-01-16 21:29 DWVictor 阅读(7496) 评论(0) 推荐(9)
只有注册用户登录后才能阅读该文。
posted @ 2019-01-16 21:25 DWVictor 阅读(85) 评论(1) 推荐(7)
摘要:原理: 任意多边形的面积可由任意一点与多边形上依次两点连线构成的三角形矢量面积求和得出。 分析: 由于给出的点是相对于我们的坐标原点的坐标,每个点实际上我们可以当作一个顶点相对于原点的向量,如下图所示: P(0,0)对应的顶点向量分别为:A(x0,y0),B(x1,y1),…,G(x6,y6) 另外 阅读全文
posted @ 2019-01-16 18:33 DWVictor 阅读(1112) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/338/L 题解: 当n==1时,0-9填上的话,对4取余,分别是余数为0的3个,1的3个,2的2个,3的2个; 当n==2时,因为一个数的时候有3323的余数个数分布,如果第2个填上数可以使原来的余数变成0或者保持零,那么可以 阅读全文
posted @ 2019-01-16 18:28 DWVictor 阅读(349) 评论(0) 推荐(0)
摘要:一、基础知识(1)矩阵乘法 https://blog.csdn.net/weixin_43272781/article/details/82899737 简单的说矩阵就是二维数组,数存在里面,矩阵乘法的规则:A*B=C 其中c[i][j]为A的第i行与B的第j列对应乘积的和,即: 代码: 另一种写法 阅读全文
posted @ 2019-01-16 18:26 DWVictor 阅读(477) 评论(0) 推荐(0)
摘要:定义快速幂顾名思义,就是快速算某个数的多少次幂。 其时间复杂度为 O(log2N), 与朴素的O(N)相比效率有了极大的提高。 以下以求a的b次方来介绍 原理把b转换成2进制数 该2进制数第i位的权为(2^(i-1)) 例如 a^11=a^(2^0+2^1+2^3) 11的二进制是1 0 1 1 1 阅读全文
posted @ 2019-01-16 18:22 DWVictor 阅读(624) 评论(0) 推荐(1)
摘要:一、必胜点和必败点的概念 P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。 N点:必胜点,处于此情况下,双方操作均正确的情况下必胜。 必胜点和必败点的性质: 1、所有终结点是 必败点 P 。(我们以此为基本前提进行推理,换句话说,我们以此为假设) 2、从任何必胜点N 操作,至 阅读全文
posted @ 2019-01-16 18:15 DWVictor 阅读(506) 评论(0) 推荐(0)
摘要:一,并查集的介绍 并查集(Union/Find)从名字可以看出,主要涉及两种基本操作:合并和查找。这说明,初始时并查集中的元素是不相交的,经过一系列的基本操作(Union),最终合并成一个大的集合。 而在某次合并之后,有一种合理的需求:某两个元素是否已经处在同一个集合中了?因此就需要Find操作。 阅读全文
posted @ 2019-01-16 18:13 DWVictor 阅读(1607) 评论(0) 推荐(0)
摘要:AC代码: 最小生成树模板 /* Kruskal 基本模板*/ #include<bits/stdc++.h> using namespace std; const int maxn=1e3; struct Edge{ int from,to,dist; Edge(int f,int t,int d 阅读全文
posted @ 2019-01-15 22:17 DWVictor 阅读(216) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2019-01-15 21:18 DWVictor 阅读(36) 评论(0) 推荐(0)
摘要:这是一个飞机躲避子弹的小游戏,其中有许多干货 这是蒟蒻我第二次做,请各位大佬多多指教 目录 1.游戏主窗口的创建 2.图形绘制_文本绘制_颜色改变_图像对象的加载 3.线程内部类实现动画 4.游戏物体根类的实现 5.面向对象思想重构飞机类设计 6.键盘控制游戏物体原理 7.面向对象重构飞机类的键盘控 阅读全文
posted @ 2019-01-15 20:38 DWVictor 阅读(2903) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2019-01-09 16:44 DWVictor 阅读(3) 评论(0) 推荐(0)
摘要:C #include <stdio.h> int main() #main 入口函数 { printf("Hello,World!"); #printf 函数打印 return 1; #函数返回值 } Java #FileName: HelloWorld.java public class Hell 阅读全文
posted @ 2019-01-08 21:06 DWVictor 阅读(378) 评论(0) 推荐(0)
摘要:基本资料 我叫victor,当然你也可以叫我笔名,云云 这个笔名并不是我取的,其实是一个女孩子给我取的,不过我也是超级超级喜欢云的,就一直用下去了 QQ:3195397218,留个QQ吧,非常欢迎和大家一起交流! 微信号:Dwvictor,留个微信号,加好友请注明下来源 兴趣爱好 热爱ACM竞赛,但 阅读全文
posted @ 2019-01-08 21:00 DWVictor 阅读(583) 评论(4) 推荐(0)
摘要:浙江理工大学: 铺地砖 Description 元旦过去了,新年大酬宾活动也已经告一段落了。陈盖历望着堆在仓库的瓷砖,很无聊的他把这些瓷砖裁成很多1X1 1X2 1X3的小瓷砖,然后他把这些小瓷砖排在地上画的一个1*n的长方形里。问铺满这个长方形共有多少种方法? Input 首先输入一个整数T,表示 阅读全文
posted @ 2019-01-08 20:07 DWVictor 阅读(274) 评论(0) 推荐(0)
摘要:#include #include #include int maxPrimeFactor(int n) { int i,ans=0; for(i=2;i*i1)ans=n; return ans; } int main() { int n; scanf("%d",&n); printf("%d\n",maxPrimeFactor(n)); return 0; } 阅读全文
posted @ 2019-01-08 11:29 DWVictor 阅读(576) 评论(0) 推荐(1)
摘要:H. Special Palindrome time limit per test:1 second memory limit per test:64 megabytes input:standard input output:standard output A sequence of positi 阅读全文
posted @ 2019-01-08 10:44 DWVictor 阅读(296) 评论(0) 推荐(0)
摘要:在生活中五子棋也是一种先手有必赢策略的游戏,有人会说五子棋先手我也会输啊,所以 博弈论问题都有个类似如“参与者足够聪明”,“两人都不犯错"的前提。 在此前提下,讨论几种常见的博弈情形。 { } 一、巴什博弈(Bash Game) 只有一堆n个物品,两个人从轮流中取出(1~m)个;最后取光者胜。 考虑 阅读全文
posted @ 2019-01-08 10:32 DWVictor 阅读(1085) 评论(0) 推荐(0)
摘要:1.gcd 2.扩展gcd )extend great common divisor 3.求a关于m的乘法逆元 补充:求逆元还可以用 ans=abmodm=(amod(m⋅b))/bans=abmodm=(amod(m⋅b))/b 4.快速幂quick power ll func(ll a,ll b 阅读全文
posted @ 2019-01-08 10:26 DWVictor 阅读(487) 评论(0) 推荐(1)
摘要:map m; //分解质因数 //k为1或-1 void fun(int n, int k) { for (int i = 2; i 1) { m[n] += k; } } //大数快速幂取模 LL quick_pow(LL a, LL b) { LL ret = 1; while (b) { if ... 阅读全文
posted @ 2019-01-08 10:25 DWVictor 阅读(374) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-01-08 10:17 DWVictor 阅读(154) 评论(0) 推荐(0)
摘要:在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。 N点:必胜点,处于此情况下,双方操作均正确的情况下必胜。 必胜点和必败点的性质: 1、所有终结点是 必败点 P 。(我们以此为基本前提进行推 阅读全文
posted @ 2019-01-07 21:40 DWVictor 阅读(3027) 评论(0) 推荐(3)
摘要:简单差分 可能这里的阅读体验更好:戳这里 引入 首先,给出一个问题:给出n个数,再给出Q个询问,每个询问给出le,ri,x,要求你在le到ri上每一个值都加上x,而只给你O(n)的时间范围,怎么办?思考一下: 如果暴力,卡一下le和ri,随随便便让你O(n^2)T成狗。 用线段树或树状数组搞一搞,抱 阅读全文
posted @ 2019-01-07 21:36 DWVictor 阅读(251) 评论(1) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/322/M来源:牛客网 题目描述 HJ养了很多花(99999999999999999999999999999999999盆),并且喜欢把它们排成一排,编号0~99999999999999999999999999999999 阅读全文
posted @ 2019-01-07 21:22 DWVictor 阅读(689) 评论(0) 推荐(0)
摘要:最近我将博客转到了博客园,具体原因就不说了 原博客地址 https://blog.csdn.net/gtgym321 现在博客还在调整中哦,有问题谢谢大家指出来 阅读全文
posted @ 2019-01-07 13:21 DWVictor 阅读(314) 评论(0) 推荐(1)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/L来源:牛客网 Consider digits strings with length n, how many different strings have the sum of digits are multip 阅读全文
posted @ 2019-01-06 19:36 DWVictor 阅读(410) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/K来源:牛客网 题目描述 Consider the right-angled triangles with sides of integral length. Give you the integral lengt 阅读全文
posted @ 2019-01-06 19:33 DWVictor 阅读(379) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/F来源:牛客网 题目描述 AFei loves numbers. He defines the natural number containing "520" as the AFei number, such as 阅读全文
posted @ 2019-01-06 19:31 DWVictor 阅读(483) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/E来源:牛客网 Zghh likes number, but he doesn't like writing problem description. So he will just give you a prob 阅读全文
posted @ 2019-01-06 19:30 DWVictor 阅读(481) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/D来源:牛客网 题目描述 As everyone knows, there are now n people participating in the competition. It was finally lun 阅读全文
posted @ 2019-01-06 19:28 DWVictor 阅读(275) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/C来源:牛客网 题目描述 Houraisan☆Kaguya is the princess who lives in Literally House of Eternity. However, she is ver 阅读全文
posted @ 2019-01-06 19:27 DWVictor 阅读(393) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/B来源:牛客网 题目描述 Sleeping is a favorite of little bearBaby, because the wetness of Changsha in winter is too un 阅读全文
posted @ 2019-01-06 19:25 DWVictor 阅读(399) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/A来源:牛客网 题目描述 AFei is a trainee magician who likes to study various magical materials. Today, he came to the 阅读全文
posted @ 2019-01-06 19:24 DWVictor 阅读(461) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/338/I 题解:首先轮到出手的时候如果在(0,0)上肯定是输的,而(0,1)(1,0)(0,2)(2,0)(1,1)肯定是赢的; 往上递推,某一个(x,y)如果可以走的(x-1,y)(x,y-1)(x-1,y-1)三点都是必输 阅读全文
posted @ 2019-01-06 19:22 DWVictor 阅读(374) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/J来源:牛客网 题目描述 Less taolu, more sincerity. This problem is very easy to solve. You may be very tired during t 阅读全文
posted @ 2019-01-06 19:11 DWVictor 阅读(427) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/G来源:牛客网 题目描述 This is a very simple problem! Your only job is to calculate a + b + c + d! 输入描述: There are se 阅读全文
posted @ 2019-01-06 19:09 DWVictor 阅读(352) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/contest/338/H来源:牛客网 题目描述 Kuangyeye is a dalao of the ACM school team of Hunan University. His favorite food are hamburg 阅读全文
posted @ 2019-01-06 19:02 DWVictor 阅读(524) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/338/G 链接:https://ac.nowcoder.com/acm/contest/338/G来源:牛客网 题目描述 This is a very simple problem! Your only job is to c 阅读全文
posted @ 2019-01-06 14:01 DWVictor 阅读(1517) 评论(0) 推荐(0)
摘要:高精度板子 阅读全文
posted @ 2019-01-06 13:58 DWVictor 阅读(790) 评论(1) 推荐(0)
摘要:关于Codeforces赛制: Codeforces赛制的题目会有两套数据,一套称为Pretest,另一套称为System Test,当比赛进行时,您的提交将会用Pretest测评,若通过所有Pretest,则会显示 \color{green}\text{Pretests passed}Pretes 阅读全文
posted @ 2019-01-06 12:57 DWVictor 阅读(8826) 评论(1) 推荐(6)
摘要:字符串的最小表示法 http://poj.org/problem?id=1509 字符串最小表示法:以某个小标开始字典序最小的串。 假设有两个下标i,j,表示如果从i和从j出发的字符串,有一个k表示字符串的长度,如果长度达到len,就表示找到最小的串。 s[i+k] == s[j+k]: k++ s 阅读全文
posted @ 2019-01-05 16:25 DWVictor 阅读(365) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1273 Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions:87219 Accepted: 33916 Description Every time 阅读全文
posted @ 2019-01-05 16:20 DWVictor 阅读(1546) 评论(0) 推荐(1)
摘要:Makoto and a Blackboard time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Makoto and a Bla 阅读全文
posted @ 2019-01-05 16:13 DWVictor 阅读(429) 评论(0) 推荐(0)
摘要:Yuhao and a Parenthesis time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Yuhao and a Pare 阅读全文
posted @ 2019-01-05 16:07 DWVictor 阅读(412) 评论(0) 推荐(0)
摘要:http://m3.codeforces.com/contest/1097/problem/A Gennady and a Card Game time limit per test 1 second memory limit per test 256 megabytes input standar 阅读全文
posted @ 2019-01-05 16:01 DWVictor 阅读(383) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/1097/problem/A Petr and a Combination Lock time limit per test 1 second memory limit per test 256 megabytes input stand 阅读全文
posted @ 2019-01-05 15:57 DWVictor 阅读(526) 评论(0) 推荐(0)