自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZigZagK的博客

Never give up fighting!

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 【平衡树维护序列】BZOJ1500(NOI2005)[维修数列]题解

BZOJ1500题解。

2017-03-31 09:19:01 894

原创 斜率优化

f[i]=min{f[j]+a[i]|j<i}f[i]=min{f[j]+a[j]|j<i}f[i]=min{f[j]+a[i]+a[j]|j<i}像上面这些 i​ 的信息和 j​ 的信息不相关的线性DP,用堆,单调栈,线段树等都可以进行优化,但是如果 i​ 的信息和 j​ 的信息相关,比如:f[i]=min{f[j]+(a[i]−a[j])2|j<i}​就不能用普通的方法优化了,这时候需要用到斜率优化。

2017-03-27 19:46:38 1033 1

原创 【最小割->最短路】BZOJ1001(BeiJing2006)[狼抓兔子]题解

题目概述给出一张网格图,兔子从(1,1)逃向(n,m),有横向道路,纵向道路和对角线道路,每条道路都有一个流量限制(即最多能通过多少兔子),一只狼只能抓一只兔子。问最多在边上放置多少只狼才能完全堵截兔子。 解题报告一道神奇的题目。一眼看去果断最小割(求最大流),然而n和m巨大,足以让你爆炸。所以要另辟蹊径。这道题的最小割肯定是从左或下割到右或上,但是由于这是网格图,割过去肯定会经过题目给出的那些边

2017-03-25 21:14:19 574 2

原创 树链剖分

树链剖分-轻重链剖分

2017-03-24 09:03:04 406 1

原创 2017浙江省选一试第四天游记

终于上战场了,5个小时的考试时间结果我1个小时不到就弹尽粮绝了。于是果断开始打暴力,T1暴力不会……T2暴力10分……T3暴力10分……花费3个小时打完暴力之后开始发呆,第一题暴力又怎么都想不出来,荒废了一个小时之后交卷。 下午颁奖仪式,对于蒟蒻(比如我)来说就是欣赏各路大神拿着获奖证书被灯光照射闪瞎我的狗眼(不得不说灯光真的tm亮啊,肯定是大神之光加成,嗯)。颁奖仪式过后坐了好久的车回到了久违(

2017-03-23 20:07:27 1398 1

原创 2017浙江省选一试第三天游记

和昨天一样,还是并没有听懂(蒟蒻++),一整天讲了许多杂题,对明天的一试也许有用。云里雾里的听完了一天的讲解,不过想到明天的省选,还是有点小激动,虽然不是很可能得到满意的分数,不过我还是尽我所能打,暴,力!毕竟大力出奇迹!在明天颁奖典礼见到各位大神之后,我就要回到学校上课了,祝大家rp+=∞,取得理想的好成绩,开心回家!——2017.3.22 21:08 by zzk

2017-03-22 19:18:35 772

原创 2017浙江省选一试第二天游记

今天真正进入到了省选备战状态,也迎来了令(非)人(常)期(无)待(聊)的讲课。早上讲了搜索算法,比如拆半搜索,启发式搜索,DLX等神奇的搜索法,不过因为太蒟蒻,没有学过A*,IDA*等算法,不是很能够理解(囧),OI水平还有待提高。下午先讲了一些stl用法和不常用的容器(比如hash_set,hash_map,rope,tree),不过基本都可以手写,只不过可以省代码。随后讲一些“简单”的题目,作者

2017-03-21 20:34:07 903

原创 2017浙江省选一试第一天游记

扑面而来的大神气息,到了旅馆无所事事鬼畜一天,明天就要听课去了(想想都听不懂),距离一(爆)试(零)还有三天,想想就很刺(作)激(死)。 ——2017.3.20 22:44 by zzk

2017-03-20 22:45:10 677 1

原创 Splay区间修改

简介Splay的伸展操作使Splay在某些方面变得很方便,甚至也能够利用伸展操作来进行区间操作! ps:本人蒟蒻,写法可能很奇怪:P。 再ps:首先结构体内部的cmp要写的特殊一点(因为k表示位置):int cmp(int &k){ if (k==son[0]->si+1) return -1;if (k<son[0]->si+1) return 0; k-=son[0]->s

2017-03-17 21:05:49 892 1

原创 线段树Lazy-tag

由来线段树求区间极值的时候,每次都需要修改包含在插入区间的所有节点,这样是不可能承受的!于是lazy思想也就是Lazy-tag是一个非常不错的优化。实现lazy思想的含义就是“要做的时候再做,不然不做”。这听起来不太可能,但实际上根据树的性质,这是可以实现的,只需要使用Lazy-tag: 对于一个节点,我们记录一个tag表示还没有传递下去的值(也就是操作时到这个节点停止了,后面没有遍历过),然后

2017-03-17 18:53:52 1292

原创 线段树

功能线段树是线段组成的(二叉)树,可以解决许多区间问题。因为他的灵活性和较高的效率(二叉树,效率为log2级别的),甚至常常可以取代树状数组和RMQ等区间算法(树状数组只能向上修改,向下取值,RMQ无法即时修正,而线段树这两个问题都可以解决)。需要注意的是线段分两种:不重叠和重叠(点和真正的线段)。下面以不重叠为例。1.建树首先tr[1].L肯定就是左端点,tr[1].R是右端点,然后就需要推左子树

2017-03-17 18:43:08 546

原创 LCP

LCP总结。

2017-03-14 19:24:30 4293 2

原创 后缀数组

后缀数组-倍增算法。

2017-03-14 19:19:48 668

原创 AC自动机

作用AC自动机全称Aho-Corasick自动机,这个算法是在KMP和trie的基础上得到的更优秀的字符串匹配算法(所以强烈建议先参考KMP和Trie)。实现KMP是线性的匹配,AC自动机呢?不难想到在trie里匹配! 比如有she,her,hers,his,him这几个单词,我们需要在一个本文中查找这些单词。使用KMP需要每个单词先处理失配函数,然后还要遍历这个文本n次(n表示单词数量),

2017-03-13 21:15:02 617

原创 Trie

作用Trie是前缀树,通俗的来说就是一棵字符树,它的作用是把许多字符串整合储存,做成一个字符串集合,有时可以达到快速查找的效果(比如求多少个单词是一个句子的前缀)。实现比如有she,her,hers,his,him这几个单词,我们就可以建立这么一个Trie。 首先会发现Trie的一个特性:必有一个根节点(把根节点记为0)。然后每条边都有一个权值,权值即为字符(一般用取id的方法来当成权值)。

2017-03-11 17:02:46 948 5

原创 KMP

问题从A串中找一个B串,我们首先想到的肯定是暴力。但是如果数据太大的话肯定不行。怎么办?KMP算法是一个很不错的选择。思想这个算法的核心是这样的,举个例子。 现在是对上的,那么我们继续看。 到这里再往下肯定就不行了,这时候我们怎么办呢?暴力的想法就是抛弃,重新来,而KMP的想法就是不抛弃!我们知道,想要不抛弃,肯定需要把某个j’摆上来和i对齐(当然j’要满足1~j’与原来匹配),这样

2017-03-11 16:21:14 474

原创 【平衡树启发式合并】POJ1741[Tree]题解

POJ1741题解。

2017-03-09 20:18:45 1523 3

原创 【计算几何初步】POJ1584[A Round Peg in a Ground Hole]题解

POJ1584题解。

2017-03-09 19:17:23 431

原创 点和直线

向量旋转起点在原点的向量(x,y),逆时针旋转α之后的位置为: (x*cos(α)-y*sin(α),x*sin(α)+y*cos(α)) ps:太蒟蒻,证明不是很能记住。直线表示直线可以用直线上的一点P0+t*v来表示(其中v是一个向量,他主要是提供一个方向,大小无所谓,t是参数,可以粗略理解为y=kx+b里的x)。而v其实很容易求得,只需要知道这条直线上两个不同的点A,B,B-A就是v。直线

2017-03-08 07:58:02 577

原创 浅谈C++指针

ps:本人蒟蒻,如有错误请指正Orz 指针是什么 这个需要涉及到某些原理的问题:C++定义类型的时候,实际上是在内存中给你开辟了空间。比如你开了一个int类型,就会帮你开辟4字节的空间,你开了一个int数组a[x],就会为你开辟4*x字节的空间。但是开辟了空间之后,怎么修改呢?这时候就需要指针的存在,来指向空间。 指针的作用 有了指针,我们就可以知道空间所在的地址,好比你有了朋友的地址,可以

2017-03-06 21:12:58 508 1

原创 Splay

思想Splay_tree,伸展树,顾名思义就是用伸展来进行平衡的平衡树。伸展操作是把一个节点伸展到根上的操作,当然不是简单的旋转到根,而是:(绿色节点是x,蓝色节点为p,红色节点为g) ①当p是根节点时,只需要一次正常的旋转即可。 ②当p不是根节点,x,p,g“三点共线”时,先旋转p,然后旋转x。 ③当p不是根节点,x,p,g“三点不共线”时,旋转两次x。每次插入,询问,删除

2017-03-04 16:43:40 838 4

原创 Treap

旋转Treap的总结。

2017-03-03 20:51:30 959 1

原创 【并查集跳跃访问+树状数组】2017.3.1杂题[平方根]题解

题目概述给出一个n个元素的数列,并给出m个操作,操作有两种类型。0 x y:将x~y中的所有元素都取平方根的整数部分;1 x y:求x~y中所有元素的总和。解题报告用计算机算一下,会发现2^63-1开平方根6次就会变成1,而变成1之后再怎么开平方根都是1!所以说每个数最多开平方根6次,一旦变成1,这个数就可以无视了。怎么样能做到无视?用并查集!father[i]表示离i最近的不为1的数。对于x~y的

2017-03-02 20:14:19 577

原创 【物理分析】2017.3.1杂题[逃离]题解

题目概述有个正n边形,边长为a,所有端点都向着顺时针方向的下一个端点按速度v移动,求所有点到达中心点的时间。解题报告ps:这是一道物理题,物理题,物理题!所以说大家还是要学好物理的。 通过yy可以发现,不管怎么移动,图形都是正n边形,所以我们只需要直接分析初始状态即可,后面都同理: 把速度v分解为v1和v2,显然只有v1是向中心点前进的,v2没用,所以答案就是初始点到中心点的距离dis/v

2017-03-02 20:06:38 605

2012年noi冬令营陈立杰讲稿

丽洁姐的后缀自动机讲解!

2017-07-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除