心得
Last0rder
最后之作
展开
-
tarjan求极大连通分量
下面大概说说tarjan算法吧:【功能】Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量。强连通分量是指有向图G里顶点间能互相到达的子图。而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连通分量就是极大强连通分量。【算法思想】用dfs遍历G中的每个顶点,通dfn[i]表示dfs时达到顶点i的时间,low[i]表示i所能直接或间接达到时间最小原创 2016-02-29 08:14:07 · 689 阅读 · 0 评论 -
线段树辅助——扫描线法计算矩形面积并
分析:1.矩形比较多,坐标也很大,所以横坐标需要离散化(纵坐标不需要),熟悉离散化后这个步骤不难,所以这里不详细讲解了,不明白的还请百度2.重点:扫描线法:假想有一条扫描线,从左往右(从右往左),或者从下往上(从上往下)扫描过整个多边形(或者说畸形。。多个矩形叠加后的那个图形)。如果是竖直方向上扫描,则是离散化横坐标,如果是水平方向上扫描,则是离散化纵坐标。下面的分析都是离散化横坐转载 2015-05-17 19:19:57 · 571 阅读 · 0 评论 -
线段树辅助——扫描线法计算矩形周长并(轮廓线)
例题:hdu 1828 Picture有两种方法,不过常用的第二种,两种都说一下。第一种:把矩形分成横线和竖线去处理,可知是完全相同的操作,我们来讲下怎么算出横线部分,竖线部分就是照搬即可。将横线保存在一个表中,按横线所处的竖直位置排序(升序),另外每条横线带一个标记值,原矩形的下线为1,上线为-1(对应过去就是插入线段和删除线段)从低到高扫描横线,没扫转载 2015-05-17 20:52:53 · 1443 阅读 · 0 评论 -
扫描线矩形面积交
线段树求面积并升级版题意中文,不解释这题的代码在一般的线段树求面积并的基础上进行了修改,但是所用的思想是一样的,所以不难理解回忆一下一般的求矩形覆盖面积,线段树节点里面有一个重要的变量,cnt。这个变量表示了该节点表示的区间被完全覆盖,如果cnt=0,说明没有被完全覆盖(但不代表没有被覆盖),要算出该节点所代表的区间被覆盖的长度,需要由它左右孩子节点被覆盖的长度相加所得。如转载 2015-05-17 19:21:15 · 617 阅读 · 0 评论 -
KMP和扩展KMP
KMP:给出两个字符串A(称为模板串)和B(称为子串),长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0【算法】设next[i]为满足B[i-z+1..i]==B[0..z-1]的最大的z值(也就是B的自身匹配)。设目前next[0..lenB-1]与ex[0..i-1]均已求出,要用它们来求ex[i]的值。根据ex的定义,有A[i-1-ex[i-1]+1..i-1转载 2015-04-28 20:03:32 · 411 阅读 · 0 评论 -
Apache2.2 安装后:the requested operation has failed 问题定位
今天按照网上的指点安装Apache2.2,安装的过程很顺利,结果发现安装完成之后右下角的Apache图标是红色的,也就是没有启动,好,那我点击图标,选择“start”,结果就出现了一个对话框提示“the requested operation has failed”。不能启动。非常郁闷,因为我完全是新手,只得上网查(网络真不错)。 看了很多文章,总结起来大概有两个方面导致上面的错误:转载 2015-04-28 17:16:43 · 512 阅读 · 0 评论 -
MySQL数据库安装与配置详解
目录一、概述二、MySQL安装三、安装成功验证四、NavicatforMySQL下载及使用 一、概述 MySQL版本:5.6.21 下载地址:http://rj.baidu.com/soft/detail/12585.html?ald 客户端工具:NavicatforMySQL 绿色版下载地址:http://www.cr173.com/soft/转载 2015-04-28 14:59:28 · 587 阅读 · 0 评论 -
如何从Apache官网下载windows版apache服务器
由于个人有强迫倾向,下载软件都喜欢从官网下载,摸索了好久终于摸清楚怎么从Apache官网下载windows安装版的Apache服务器了,现在分享给大家。工具/原料apache方法/步骤1进入apache服务器官网http://httpd.apache.org/,这里我们以下载稳定版的httpd 2.2.29转载 2015-04-28 15:19:59 · 775 阅读 · 0 评论 -
框架导航的写法
首先是 targettarget 属性 -- 链接目标不符合标准网页设计的理念,不赞成使用.取值_blank -- 在新窗口中打开链接_parent -- 在父窗体中打开链接_self -- 在当前窗体打开链接,此为默认值_top -- 在当前窗体打开链接,并替换当前的整个窗体(框架页)一个对应的框架页的名称 -- 在对应框架页中打开导航框架的写法,示例为两列的转载 2015-05-02 21:29:19 · 1002 阅读 · 0 评论 -
斜率优化DP以及本人对原作的补充遐想
我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i]的形式,其中f[j]中保存了只与j相关的量。这样的DP方程我们可以用单调队列进行优化,从而使得O(n^2)的复杂度降到O(n)。 可是并不是所有的方程都可以转化成上面的形式,举个例子:dp[i]=dp[j]+(x[i]-x[j])*(x[i]-x[j])。如果把右边的乘法化开的话,会得到x[i]*x[j]的项。这就没办法使得f[转载 2015-04-09 22:12:39 · 533 阅读 · 0 评论 -
牛顿迭代法快速寻找平方根
下面这种方法可以很有效地求出根号a的近似值:首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了。 例如,我想求根号2等于多少。假如我猜测的结果为4,虽然错的离谱,但你可以看到使用牛顿迭代法后这个值很快就趋近于根号2了:( 4 + 2/ 4 ) / 2 = 2.25( 2.25 + 2/ 2.2转载 2015-04-08 21:01:44 · 673 阅读 · 0 评论 -
树的重心
还记得曾经提到过的树的“重心”吗?重心的定义是:以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。树的重心的一个的性质:树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么他们的距离和一样。这也是“道路修建”带来的启发。(证明:调整法)树的重心的另一个性质:把两个树通过一条边相连得到一个新的树,那么新的树的重心在转载 2015-09-28 21:54:55 · 605 阅读 · 0 评论 -
概率dp
HDU 4035/*HDU 4035kuangbinhttp://www.cnblogs.com/kuangbin/ dp求期望的题。 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 (概转载 2015-09-07 18:53:42 · 411 阅读 · 0 评论 -
计算机科学中最重要的32个算法
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出转载 2015-09-17 13:14:40 · 458 阅读 · 0 评论 -
Catalan Number
关于扩展的卡特兰数:1.(n-m+1)/(n+1)*c(n+m,n)2.c[n+m][n]-c[n+m][m-1]Catalan,Eugene,Charles,卡特兰(1814~1894)比利时数学家,生于布鲁日(Brugge),早年在巴黎综合工科学校就读。1856年任列日(Liege)大学数学教授,并被选为比利时布鲁塞尔科学院院士。卡特兰一生共发表200多种数学各领域的论著。转载 2016-03-12 16:27:45 · 809 阅读 · 0 评论 -
tarjan在acm里的应用
转载请注明原blog地址(http://blog.csdn.net/stl112514)学习了一下tarjan在acm里面的应用,首先仰慕下Robert Tarjan菊苣,摸完之后呢,写个总结。据我所知,主要是用于以下三点:1、有向图中求极大强连通分量(无向图就拆成有向图处理);2、无向图中求桥(也就是割边,当然,顺便求下割点);3、无向图中求极大双连通分量(好像有一种说法说分为点连通分量原创 2016-03-03 17:44:59 · 547 阅读 · 1 评论 -
求解x=a^b(mod m)
http://www.narutoacm.com/archives/a-pow-b-mod-m/本文致力于解决如下问题:求解x≡ab(mod m),其中a,b,m都是正整数。如果b足够小,则可直接用逐次平方法求解,如果你不知道逐次平方法,可以先看这里。所以这里假设b足够大(这不是说是一个64位整数,而是可以上百上千位的一个数),大到逐次平方法也已不足以快速出解。用素转载 2016-01-09 10:15:02 · 1139 阅读 · 0 评论 -
高速缓存与主存的三种映射方式
1、全相联映射方式全相联映射是指主存中任意一个块都可以映射到cache中任意一个块的方式,也就是说,当主存中的某一块需调入cache时,可根据当时cache的块占用或分配情况,选择一个块给主存块存储,所选的cache块可以是cache中的任意一个块。例如,设cache共有2^C块,主存共有2^M块,当主存的某一块j需调进cache中时,它可以存入cache的块0、块1、…、块i、…或块2^C转载 2015-12-01 16:01:15 · 4343 阅读 · 0 评论 -
Codeforces Round #327 (Div. 1) 解题报告
A. Median Smoothing题意:给出一个01串,每次变化,首尾字符不变,第i个变成i-1,i,i+1中出现最多次的数字。问,多少次后,变化的结果跟变化之前一样,输出变化次数以及最终状态。做法:很显然只有01010101……这种子串才会不断的变,只要它的首尾两端是母串的首尾或者00,11就一定会有停止的时候,随便模拟下就找到规律了。B. Chip 'n D原创 2015-11-02 20:29:10 · 948 阅读 · 0 评论 -
0型文法,1型文法,2型文法,3型文法是什么
乔姆斯基把方法分成四种类型,即0型、1型、2型和3型。这几种文法类型的概念一定要掌握,是一个非常重要的考点。对于这几种文法,一般书上都只有简单的概念介绍,比较抽象,所以很多学员都没有真正理解。下面我将把概念结合例题进行讲解。 0型文法 设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有一个非终结符,而β∈(VN∪VT)*,则G是转载 2015-10-31 15:25:01 · 4455 阅读 · 0 评论 -
Codeforces Round #325 (Div. 1) 解题报告
A. Gennady the Dentist题意:有n个孩子排队看病,每次排在第一的孩子进去看病,然后他会哭,最后在他之后的孩子的p值会依次减少vi,vi-1,vi-2……,0,0,0,0,……0。当某个孩子的p做法:for套for,暴力模拟B. Phillip and Trains题意:3*n的网格,s在最左端某处,每次他可以往右走一步,然后再或上或下走一步或不动。有k个原创 2015-11-08 21:15:40 · 651 阅读 · 0 评论 -
圆的扫描线
有关圆的扫描线的学习就告一段落了,这里总结下。圆的扫描线是有条件的:任意圆之间,只有包含跟相离这两种条件。怎么扫描呢?假如是从左往右扫,set从上到下保存圆,假设碰到一个圆,那么碰到的一定是这个圆的左端点,我们把它丢到set里,当再也扫不到它的时候,很显然就是碰到它的右端点的时候,这个时候把它从set中丢掉。然后具体讨论要做什么操作的时候,就可以自己构造了,就用下面这三个例题来说明原创 2015-09-18 21:44:30 · 2129 阅读 · 0 评论 -
Codeforces Round #326 (Div. 1) 解题报告
A. Duff and Weight Lifting题意:有n个哑铃,每个重量为2的ai次方,每次你可以丢掉总和为2的x次方的哑铃。问,最少需要丢几次,才能把全部的哑铃丢光。做法:考虑二进制进位的条件,贪心就好。B. Duff in Beach题意:有两个串a跟b,长度分别n跟l,b是由a不断循环得到,也就是bi=a(i%n)。在b中从左开始,将长度为n的子串分成一个块,要原创 2015-11-05 18:07:03 · 991 阅读 · 0 评论 -
置换群
置换群看了几天置换群,一直没搞清楚定义是怎么回事,一个置换可以写成若干循环的乘积,那么如果置换求幂的话,一个循环不会跑到另一个循环里面去。我们可以简单理解为这几个位置的数来回换。poj3270给出一列数,求将这列数排成升序的最小花费,这里花费定义为交换两个数的和。例如给出一排数8 4 5 3 2 7,那么我们最终的状态为2 3 4 5 7 8,这里的轮换有(8 2 7)转载 2015-09-16 18:01:54 · 2356 阅读 · 0 评论 -
csu1563: Lexicography以及找出多重集的第k个串的讲解
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 162 Solved: 52[Submit][Status][Web Board]DescriptionAn anagram of a string is any string that can be formed using the same letters as the原创 2015-04-07 14:19:29 · 871 阅读 · 0 评论 -
memset是如何赋值的以及一些遐想
根据测试得知。。。memset是获取第二个参数的二进制从右边起的八位也就是一个字节,不断重复的填充第三个参数那么多次填充到以第一个参数为起端的连续区域里至少C/C++是这样原创 2015-04-03 22:04:46 · 945 阅读 · 0 评论 -
树链剖分
“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度(根深度为1),top[v]表示v所在的重链的顶端节点,fa[v]表示v的父亲,son[v]表示转载 2015-03-30 22:24:31 · 473 阅读 · 0 评论 -
hdu 4773 Problem of Apollonius
莫名其妙就AC了……圆的反演……神马是反演?快去恶补奥数……#include#include#include#include#include#include#include#include#include#includeusing namespace std;const double pi=acos(-1.0);const double eps=1e-9原创 2014-11-14 12:29:55 · 1420 阅读 · 2 评论 -
论高斯消元实现
高斯消元的实现是用到了增广矩阵变成上三角矩阵,然后从下往上迭代求值。具体是这样的,比如说有一个二元一次方程组那么,把未知数的系数提出来弄成一个2*2的矩阵,然后再把方程组中等号右边的常数项加进来,成为一个2*3的矩阵这就是一个增广矩阵了,接下来变成一个上三角矩阵,从矩阵的第一行开始,一直到最后一行,比方说现在面临的是第i行原创 2014-09-17 21:04:57 · 1073 阅读 · 0 评论 -
codeforces#253 D - Andrey and Problem里的数学知识
codeforces#253 D - Andrey and Problem里的数学知识原创 2014-06-20 16:05:58 · 2353 阅读 · 1 评论 -
用dfs实现1到n的全排列
用dfs实现1到n的全排列,有更好的方法的朋友,欢迎讨论原创 2014-07-07 10:43:27 · 1874 阅读 · 0 评论 -
stl实现全排列
代码如下#include#include#includeusing namespace std;char perm[10000];int main(){ char tmp; int num=0,i; while((tmp=getchar())&&tmp!='\n') if(tmp!=' ') perm[num++]=tmp; do { for(i=0;i<n原创 2014-07-07 11:05:25 · 745 阅读 · 0 评论 -
Prim、Kruskal、Prim+Heap算法效率实测
评测环境:WindowsXP,FreePascal2.40,Pentium(R) Dual-Core CPU T4300@2.10GHz,2G内存通过上图可以看出:1.Prim在稠密图中比Kruskal优,在稀疏图中比Kruskal劣。2.Prim+Heap在任何时候都有令人满意的的时间复杂度,但是代价是空间消耗极大。【以及代码很复杂>_3.时间复杂度并转载 2014-05-31 13:55:44 · 1846 阅读 · 0 评论 -
关于c++ list容器的操作摸索
c++ list基本应用原创 2014-06-14 21:04:30 · 1267 阅读 · 0 评论 -
priority_queue用法
关于priority_queue1,关于STL中的priority_queue:确定用top()查看顶部元素时,该元素是具有最高优先级的一个元素. 调用pop()删除之后,将促使下一个元素进入该位置. 2,如同stack和queue,priority_queue是一个基于基本序列容器进行构建的适配器,默认的序列器是vector. 模板原型:priority_queueT:存转载 2014-06-13 20:37:10 · 897 阅读 · 0 评论 -
关于oj爆RE
一般可能是数组原创 2014-06-13 19:08:00 · 3791 阅读 · 0 评论 -
关于memset赋值无穷大无穷小
memset(a,127,sizeof(a));即得到无穷大。原创 2014-05-26 21:31:09 · 6616 阅读 · 1 评论 -
高斯消元
高斯消元在比赛中的应用应该就是:1、解一般线性方程组2、解同余线性方程组3、解xor线性方程组4、求线性方程组中的自由变元原创 2014-10-02 20:05:30 · 753 阅读 · 0 评论 -
卷积
比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号,脉冲),于是你的脸上会渐渐地(贱贱地)鼓起来一个包,你的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。下面还需要一些假设来保证论证的严谨:假定你的脸是线性时不变系统,也就是说,无论什么时候老板打你一巴掌,打在你脸的同一位置(这似乎转载 2014-10-28 19:47:27 · 733 阅读 · 0 评论 -
csu 1503: 点到圆弧的距离-湖南省第十届大学生计算机程序设计竞赛
就是……判断p与圆心的连线与圆的交点在不在圆弧上,在就是它到p的距离,不在就是p跟端点的最短距离#include#include#include#include#include#include#include#include#include#includeusing namespace std;const double pi=acos(-1.0);struct原创 2014-10-30 22:36:25 · 1418 阅读 · 0 评论