ACM基础算法
文章平均质量分 61
挠头小熊熊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树链剖分
经典的一些树链剖分习题......原创 2015-11-06 16:09:10 · 631 阅读 · 0 评论 -
计算机网络名词
计算机网络名词计算机网络中感觉出现了好多名词,现在回想起来感觉忘了好多,所以就在这里记下来,看到名词也相当于一种复习了。原创 2015-05-31 21:51:55 · 2566 阅读 · 0 评论 -
欧拉路径与欧拉回路
欧拉路径与欧拉回路感觉这一块网上说的有点乱,很多东西都没有说清楚,或者都缺一些东西,所以在这里打算好好的总结与归纳一下关于欧拉路径与欧拉回路的问题。概念欧拉路径:从某一起点开始,可以沿某路径遍历图中每一条边一次且仅一次,则称此路径为欧拉路径 欧拉回路:若欧拉路径中的起点和终点相同,则其为欧拉回路一般情况下,如果一个图是由欧拉回路构成的,我们则称之为欧拉图。否则,当其是由欧拉路径构成的话,我们就称之原创 2015-05-26 18:32:05 · 1434 阅读 · 2 评论 -
tarjan求强联通分量
tarjan求强联通分量变量含义说明:pre[i]:i点的被访问的时钟编号,被分配后保持不变low[i]:i点能访问的最先的点的时钟编号,随子节点改变scc_no[i]:i点所在的强联通分量的编号dfs_clock:时钟序号,每访问一个新的点时都增长1scc_cnt:强联通分量的编号栈stk:每访问一个节点都压入栈中他的步骤如下所述:从根节点开始访问为此新点的pre和low赋值现在的原创 2015-05-24 20:37:07 · 744 阅读 · 0 评论 -
最大流EK和Dinic算法
有向图强联通分量的tarjan算法EK算法最朴素的求强联通分量的算法。 做法:不停的寻找增广路,知道找不到为止代码如下:原创 2015-05-24 20:13:30 · 782 阅读 · 0 评论 -
自适应辛普森公式求积分
辛普森公式求积分假设我们求一下积分: ∫baf(x)dx\int_{a}^b f(x) dx比较特殊的情况,就是可以推导出来最后的形式。但是比较一般的情况是,我们只能大致得到一个XYXY坐标系里的曲线,我们求的就是曲线和XX轴所围成的面积。因此我们有自适应辛普森公式,他会根据实际情况来自动的调整精度。它的大致过程就是,给定一个要求达到的精度eps,算法就会根据实际情况递归的划分区间。容易近似原创 2015-05-17 22:46:12 · 7839 阅读 · 0 评论 -
最长上升子序列(LIS)问题
最长上升子序列(LIS)问题原创 2015-05-13 23:56:03 · 702 阅读 · 0 评论 -
博弈问题入门
博弈问题入门原创 2015-05-11 23:23:47 · 1217 阅读 · 0 评论 -
阿里面试杂谈
阿里面试杂谈从一个月前的偶然发现阿里在招实习生,然后抱着玩一下的心态投了简历,然后竟然被通知参加笔试,直到现在已经经过了一轮面试,感觉世事真是难料。这算是我人生中第一次正式的面试经历吧,回来以后就感觉心里有些压抑,所以就趁现在把感想随便写了一下。其实这次面试真就是抱着去涨经验,见识世面的目的去的,但是从HR问我第一个问题起,我还是不由自主的竭尽所能认真回答起了面试官的问题,而本来觉得学好了ACM以及原创 2015-05-06 22:09:14 · 875 阅读 · 0 评论 -
康拓展开
康拓展开康拓展开在求字典序问题上是一个十分强大的算法首先,康拓展开是形如以下的式子……下面介绍一下此式在康拓展开中的含义首先我们假设有一个长为n的字符串s,下标从0开始aia_i的值是在后i-1个字符中,其中比s[n-i]小的字符个数原创 2015-04-27 12:43:02 · 1559 阅读 · 0 评论 -
快速求排列C(m,n)加取模
快速求排列组合C(m,n)%mod 写在前面: 1. 为防止产生n和m的歧义,本博文一律默认n >= m 2. 本博客文默认mod = 10^6+3原创 2015-04-25 02:56:55 · 1741 阅读 · 0 评论 -
HDU 4279 Number 坑爹的迷之精度
题目描述首先定义"special number": 如果对于一个数字B,存在一个数字A(0<A<=B),并同时满足 B%A=0 和 gcd(A,B) != 1 ,那么我们就说A是B的"special number"。 再定义一个函数f(x)表示x的"special number"的数量。并且如果f(x)%2=1时,我们就称x为"real number"。 现在给你两个数字x和原创 2015-07-20 19:02:16 · 786 阅读 · 0 评论 -
java在acm中常用基础技巧方法
java在acm中常用基础技巧方法如果学到了新的技巧,本博客会更新~原创 2015-08-03 14:16:30 · 1854 阅读 · 0 评论 -
后缀数组模板
模板如下,这样算是写的很详细的了吧。/* * 后缀数组模板-倍增法 * 使用方法: * 1、读取字符串转换成int数组,长度为len,下标从0开始 * 2、在字符串末尾加一字典序最小字符,一般为0,并找到最大的字符设为maxa * 3、调用函数da(num,sa,len+1,maxa+1) * 求得的sa数组的含义: sa[i]为第i字典序后缀字符串的首字母下标 *原创 2015-08-11 22:18:03 · 873 阅读 · 0 评论 -
高斯消元低精度模板
模板如下,复杂度O(n^3)/* 高斯消元低精度版 @挠头小熊熊 * * 使用说明: * A为大小为n的增广矩阵,A[i][n]是第i个方程右边的常数bi * 运行后A[i][n]是第i个未知数的值 * 注意: * 函数第一个形参的第二维大小记得更改 * 本版精度不高 */#include #include using namespace std;vo原创 2015-10-05 17:05:34 · 625 阅读 · 0 评论 -
整体二分&cdq分治 ZOJ 2112 Dynamic Rankings
题目:单点更新查询区间第k大按照主席树的思想,要主席树套树状数组。即按照每个节点建立主席树,然后利用树状数组的方法来更新维护前缀和。然而,这样的做法在实际中并不能AC,原因即卡空间。因此我们采用一种叫做整体二分的方法。说一下具体做法:首先要离线处理我们把原数列也当成单点更新的操作,而更改值我们则看成两个操作,第一个是删掉原来位置的值,第二个是把新的值放置原创 2015-09-18 22:35:43 · 1642 阅读 · 2 评论 -
莫队算法 sqrt(n)分块思想
在此说一下本渣对莫队算法思想的一些浅薄理解莫队算法的思想就是对真个区间的分块,然后按照每块来分别进行计算,这样最终的复杂度可以达到n*sqrt(n)小Z的袜子是一道非常经典的题目.:题目链接http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29469#problem/A我们先对整个区间分块,然后按照左区间原创 2015-09-12 21:24:02 · 1337 阅读 · 0 评论 -
主席树模板
用这个模板可以直接A掉 HDU 2665 Kth number 这题了!/* 主席树求区间第K大模板: * 模板特殊说明: * 每棵树是维护从1开始到cnt的下标信息 */#include #include #define maxn 100010using namespace std;int T, n, m, tot, a[maxn],原创 2015-08-30 16:46:54 · 1257 阅读 · 0 评论 -
Gym 100733J Summer Wars 题解:灵活运用扫描线的思想
题意:给你n个点,m个横着的线段。你可以横移这些线段,但是这些线段的相对位置不能改变。如果一个点,在它的正上方和和正下方都有线段(包括线段的终点),则这个点被视为被“屏蔽”,问通过任意平移我们可以遮住最多的点的数量。解题思路:首先把所有的点向右平移1000000个单位,然后那些线段位置不变,我们开始平移这些点,这样我们保证点向左移动的距离肯定是一个正数,方便处理。这样我们只原创 2015-08-23 00:21:43 · 1863 阅读 · 0 评论 -
Gym 100431E Word Cover 题解:KMP上跑dp
题意:给你一个串,问你他的每个前缀的最小重复单元,其中单元是可以重叠的,最后按顺序输出即可。比如样例中abaabaa的最小重复单元为abaa,所以相应输出为4。样例:input : abaabaababaoutpit:1 2 3 4 5 3 4 5 3 10 3kmp过程就不用多说了,现在我们利用next数组的性质来对问题进行求解。原创 2015-08-18 00:51:51 · 1929 阅读 · 0 评论 -
RMQ区间求最值
RMQ用于区间快速查找最值,适用于期间数值无更改的情况。其预处理的复杂度为O(nlogn),查询的时间复杂度为O(1),对比于线段树的预处理O(nlogn),查询O(logn)来说,在某些情况下有着其独到的优势。RMQ原理就是在原来的数组上跑一个dp,我们以查询最大值为例,它的状态定义是这样的:dp[ i ][ j ]:下标从i开始,长度为2^j的区间的最大值。显然dp[ i ][原创 2015-08-15 22:36:27 · 703 阅读 · 0 评论 -
三维凸包大全
忘记了是哪个大神写的了。不过绝对经典, 再此表达膜拜之情!!!有此模板几乎大部分三维凸包都可以搞了。#include #include #include #include #include using namespace std;const int MAXN=505;const double EPS=1e-8;struct Point{ double转载 2015-08-11 23:57:15 · 1325 阅读 · 0 评论 -
FFT快速傅里叶模板
FFT快速傅里叶模板……/* use way: assign : h(x) = f(x) * g(x) f(x):len1 g(x):len2 1. len = 1; while(len < 2 * len1 || len < 2 * len2) len <<= 1; 2. for i=0 to len1-1 : x1[i](f(i),0) for i=le原创 2015-08-11 23:52:10 · 793 阅读 · 0 评论 -
AC自动机模板
AC自动机模板……/* * AC自动机模板 * 使用方法: * 1、init() : 初始化函数 * 2、insert(str) : 插入字符串函数 * 3、build() : 构建ac自动机 * 4、query(str) : 返回出现的字符串个数 * * 使用需注意事项: * 1、注意输入的字符的范围,需对Next和其二维大小及相关参数进行更原创 2015-08-11 23:45:12 · 706 阅读 · 0 评论 -
字典序问题
字典序问题字典序简单介绍碰到过很多求关于字典序的问题,一直都是用的c++的STL库中的函数水过的,今天终于有机会,算是对字符串字典序问题的一个总结吧。原创 2015-04-23 13:29:27 · 1110 阅读 · 0 评论
分享