自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lalala

人弱就该多做题!

  • 博客(100)
  • 收藏
  • 关注

原创 我的刷题总结

12_19训练时的题目, waterfall这道题还是蛮有意思的, 主要就是建出来一个DAG然后扫一遍就行了。 我在比赛的时候读错了题, 误以为建出来的会是一棵树, 以至于洋洋洒洒的一个代码最后WA 0分。重点在于建图过程, 从左向右扫一遍, 考虑扫到一条线段以后只会影响 它的前驱, 后继, 还有它自己的状态: 如果它的前驱有它的后继这个儿子, 因为这里添了一个点, 所以要把这个点删了

2014-12-19 08:26:26 1752

原创 我搬家啦

因为 CSDN 的一些规定太莫名奇妙啦,我就搬家啦这里是我在博客园的新博客 ^ _ ^ 。

2015-01-08 15:25:07 886

原创 bzoj 2659: [Beijing wc2012]算不出的算式

【题意】给两个质数 p, q ,求:【题解】纯数学题,,p = q 的情况就不用说了p != q 时, p / q 显然像一个斜率, 而下取整显然是就是这条直线下面点的数量。q / p 把它翻过来就好了#include #include #include #include #include using namespace std;long

2015-01-03 09:27:40 1241

原创 bzoj 1260: [CQOI2007]涂色paint

【题意】假设你有一条长度为5的木版,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5的字符串表示这个目标:RGBGR。每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标。用尽量少的涂色次数达到目标。【题解】虽然是最简单的 dp 但

2015-01-03 09:02:03 840

原创 bzoj 3626: [LNOI2014]LCA

【题意】【题解】开始做这道题的时候抓住 lca 不放, 想了一些不太优美的做法 。优美的正解:考虑 与 z 的 lca 是 x 的点: 这时候 z 一定是 x 的一个后代, 而这些点 也都是 x 的一个后代 且 与 z 不属于 一个 x 的子节点 的枝 上。x 这个点对 答案的 贡献就是 depth[x] * 上述点的个数。显然“上述点” 的个数 应该是 s

2015-01-02 13:36:19 1135

原创 USCO gold组刷水

bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居先整理出 max( |(X+Y)-(x+y)|, |(X-Y)-(x-y)| ) 这个式子, 然后在 维护前一项 的必要性的条件下 开个multiset 维护后一项。bzoj 1594: [Usaco2008 Jan]猜数游戏“从 第几个开始不可以” 多半要二分, 因为这样的

2014-12-28 08:43:56 867

原创 单调栈

维护一个有两个键值的序列, 对于每个 i, 询问一个 最小的 j , 使得h[j] >= h[i] 且 j 直观的想法: 用set水。 或者rmp套一个二分。  但都慢而不优美。更好的做法?  单调栈单调性在哪里? —— t > 0 则, h[i + t] = i; h[i + t] >= h[i] 当且仅当 h[ j [ i + t ] ]  >= h[i] (像是一句废

2014-12-26 07:21:36 461

原创 【BZOJ1628】【USACO2007 Demo】City Skyline

【题意】平地上 建起 n 座楼, 问最少可以用多少个矩形 完全覆盖(可重复)这些楼。【题解】答案的上限 肯定是 n, 何时会减一呢? 当有两座楼高度相等且它们的中间没有比它们低的楼。所以要维护的是一个单调递增的序列, 每次弹出比它大的直到遇到一个和它相等的, 没有相等的话就把 它加入这个序列中。实现很简单。#include #include #include

2014-12-24 22:02:25 692

原创 USACO 刷水

bzoj 上用来快速涨排名的 USACO silver 题,,, 这个星期刷完。【BZOJ1622】【USACO2008 Open】名字的力量【BZOJ1613】【USACO2007 Jan】贝茜的晨练计划【BZOJ1623】【USACO2008 Open】奶牛飞车【BZOJ1628】【USACO2007 Demo】City Skyline 【BZOJ1633】【USA

2014-12-24 17:21:09 1841

原创 【bzoj2342】[Shoi2011]双倍回文

【题意】定义 双倍回文 为 一个回文串套一个回文串, 问一个串中的最长双倍回文串。【题解】首先manacher扫一遍是必须的,(注意如果把原串每两个字符中间加一个字符那样扫manacher一定要扫够2 * n 啊, 注意边界 s[1] 和 s[2 * n + 1] 都要赋值为'*', 开始因此WA了一次)。接下来的做法就很多啦,,下面看看要求的是什么:显然要枚举

2014-12-23 22:11:54 1816 2

原创 bzoj 2087 【poi2087】sheep

【题目描述】把一个 N 个顶点的凸多边形 分成若干个划分线只能在顶点相交的三角形, 要求划分后的任意一个三角形内必须有偶数只羊, 问方案数。【题解】有一个很好的性质: 一个方案可行, 当且仅当其中的每一条划分的线 的左右两边都是偶数只羊。所以只要预处理处每条线是否合法就可以了。暴力的预处理是n²m 的, 但容易想到将所有羊的位置极角排序后, 就可以做到 nm 了。然

2014-12-22 10:39:18 617

原创 数位dp

bzoj 1026bzoj 1833bzoj 2431bzoj 3209bzoj 1662数位dp模版

2014-12-21 19:46:21 350

原创 bzoj 1878 [SDOI2009]HH的项链

区间离线操作不带修改的万能做法就是莫队了。

2014-12-19 19:19:04 588

原创 bzoj 2753 [SCOI2012]滑雪与时间胶囊

【题意】给你一些边, 这些边的方向都是从高的地方到地的地方, 问1号点能到达的所有点的最小树形图。【题解】考虑在有向图上为什么不可以用Kruskal, 因为插入了一条有向边后, 当且仅当这条边是从 最后建成的最小树形图中靠近根的一侧 指向 远离根的一侧(即 这条边没有被指向的一端是被指向的一端的父亲), 插入这条边才有意义, 而一个点在最后的最小树形图中的状态在建树的过程中是很难直接判

2014-12-18 23:37:46 405

原创 12_18总结

今天上午讲了图论和动态规划, 其实就是智商题, 被虐傻了 T T, 不过其实都挺有意思的, 也不是很难, 很有趣。下午是bk来讲的 IPSC 题目选讲。。那都是什么东西。。不要欺负我不会编程,,不要欺负我不会电脑啊。好了所以说这几天的集训终于结束了, 现在我在这个空荡荡的机房里写总结, 终于有了真实的感觉, 看着这个最熟悉的机房坐满了人的时候会觉得很累, 很不真实。

2014-12-18 12:57:56 363

原创 12_17总结

集训还有一天就结束啦! 好开心。今天上午的题, 感觉我只做了半个小时, 然后就一直在发呆无所事事。 因为今天没有什么特定的数据结构或是算法的题, 都应该是乱搞出来的, 所以想我这种没做过什么题的人就完全没有概念了。所以还是要多做题。 题做多了不管什么题都是一样的。下午讲动归, 都是一些很经典的题, 我要把它们都做掉。晚上要把今天的两道题A了, 都是挺简单的题。然

2014-12-17 18:58:55 407

原创 简单常见的STL的学习

(一)vectorvector 的好处就是它分配的是动态空间。vector v;(二) setset 做的事情是动态地维护一个排序, 支持 查找键值 为 K 的点和 删除 简直 为K 的点 (但不能 超找或删除第K大的点)(而且它所包含的元素的值是唯一的)set s1;set s2;  排序准则自定义为 scmpbegin()        ,返回

2014-12-15 19:14:30 546

原创 12_15总结

啊一天又过去啦!还有三天集训就结束了有点开心。。虽然就得这样的集训应该是挺有助于进步的但是这几天过的真的很难受, 就是难受。上午 又做了一套题。我意识到自己现阶段的状态是这样的: 看到一道题, 觉得诶很可写呢, 然后又想了想, 想到了大致的算法然后觉得真的很可写呢。 于是就开始写, 然后写着写着就发现有点不对啊,,然后硬着头皮接着写, 这时候分类, 有的时候就是怎么也写不出

2014-12-15 19:10:53 336

原创 12_13总结

今天 没有比赛。上午讲的是 构造, 都比较简单, 回去要再看 跳棋 那道题的论文, 还有没讲的三道题。下午讲的是 字符串, 也没什么新东西。 哦对了 我一直因为懒没有学SA, 这两天要学一学。还有就是我 SAM 和 ac自动机现在还并没有熟练应用到精通的地步, 应该再做题, 并且在做题的时候要注意思考和总结 这里 的后缀自动机的题 我还有好几道还没有做呢。哦对了

2014-12-13 15:48:19 289

原创 12_12总结

今天是 集训的第一天。

2014-12-12 17:00:49 364

原创 后缀自动机

后缀自动机我已经给zxa和hzt都讲了一遍了, 就不在这里再重复了。后缀自动机做的事情就是用 O(n) 的时间建出来一棵后缀树, 然后就可以用后缀树做很多可爱的事情啦 ~\(≧▽≦)/~后缀自动机的空间占用是 lenth *  2 * (字符种类), 相比于 ac自动机的 lenth(子串) * (字符种类)* (字符种类)也不算差, 但是它的功能要强大得多。后缀自动机的一个特点就是,

2014-12-11 14:23:57 381

原创 fft初学

像我这么弱的很多名词都不知道, 所以必须先看两遍算导。然后看 这个人写的很清晰的FFT  就一定可以懂啦。我再来balabala几句:FFT就是要在 nlogn 的时间计算两个多项式的乘积。具体思想是 既然 两个点值表达的多项式 相乘 时间复杂度是 线性的(显然), 那为何不把多项式转换为点值表达然后乘起来然后再转换成多项式表达呢?事实证明这样做是可行的, 大致流程就是

2014-12-10 20:47:21 636

原创 矩阵初步

【几个小定义】:转置就是交换一个矩阵的行和列。的转置为对角矩阵: 顾名思义。单位矩阵: 对角元素均为1 的对角矩阵。三对角矩阵: 满足当|i - j| > 1 时, Aij = 0, 形如: 上三角与下三角矩阵: 顾名思义。排列矩阵: 每一行和每一列都有且仅有一个元素为1                      设有一个排列矩阵为P, 那么A * P 是交换了

2014-12-08 09:57:40 721

原创 数论初步学习

(一)线性筛法欧拉线性筛的流程是 对于每一个数, 扫一遍比它小的所有质数, 把这个数和这个质数的积标记为合数, 当这个数是这个质数的倍数的时候就break掉。它实际上想要实现的只有一句话: 让每一个合数都被且只被它最小的质因子筛掉。 容易证明这样做以后的时间复杂度是O(n)的。为什么这样做就可以实现这句话了呢?证明:设p 为一个合数(A)的最小的质因数, p'为这个合数的另

2014-12-05 08:18:05 558

原创 计划

我这些天 颇有些 颓。主要就是因为这两天感觉拍 LCT 遇到了一个瓶颈, 一直都是理解的不够透彻。按计划 行事 总可以再一定程度上提高效率的。 我们的比赛 就是要有 熟稔的 算法和数据结构基础 + 详实的数学基本功 + 充沛的做题经验。当然它们之间有都是相辅相成互相促进的。我近期就是在攻克动态树, 还有就是要学数论的相关知识。比如说这个

2014-12-02 21:52:58 286

转载 OI 基础知识

1.1 基本数据结构1. 数组2. 链表,双向链表3. 队列,单调队列,双端队列4. 栈,单调栈1.2 中级数据结构1. 堆2. 并查集与带权并查集3. hash 表    自然溢出    双hash1.3 高级数据结构1. 树状数组2. 线段树,线段树合并3. 平衡树    Treap 随机平衡二叉树    Splay 伸展树

2014-12-01 17:51:32 1091

原创 Link/cut tree

LCT的讲解 wikipedia 说的挺清楚的LCT——wikipediaLCT的重点好像还是不到十行,就是一个access操作.access实际上干的事情呢, 就是把这个点到根的这条路打通(都成为实(重)边)。并且用一棵二叉排序树来维护这条路(一个点属于这棵二叉排序树当且仅当它是那个点的祖先)。另外, 这棵树排序的标准是一个点的左儿子的深度小于自己。这幅图就是

2014-12-01 13:46:36 648

转载 【转】 cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>          用法1:最基本,也是最常

2014-11-30 20:32:32 236

原创 树链剖分

熟练剖分就是 一种 机智的办法, 让人在一棵树上建出一棵线段树。这个介绍比较经典#include #include #include #include #include #define MAXN 200005#define INF 1<<31using namespace std;int n, ss[MAXN], tt[MAXN], c[MAXN], ti[MAXN

2014-11-26 20:36:15 349

原创 splay

这个星期打了一些splay, 下面在这里做下总结吧。splay 的核心 要实现的就是 把二叉排序树中的一个节点移到它的某个祖先节点的位置。/*     这个操作初看来可能没有什么实际的用途,但是仔细思考简直是 非常方便。    当我们需要对一个区间进行操作时, 只要把这个区间的左端点的前一个点和右端点的后一个点 分别旋到 根节点和 根节点 的右儿子节点, 这时候一个感人肺腑的现

2014-11-26 10:58:46 620

原创 AC 自动机

ac自动机 也不知道 学过多少遍了。它具体干的事情就是在一棵trie树上跑kmp。我们先来想一想普通的kmp在做些什么:fail数组建立时:维护一个j值, 表示当前点的上一个节点最多可以匹配到匹配串的哪里, 然后一直往前推j (令j = next[j]) , 直到j + 1 == 当前点。匹配时也差不多。在trie树上fail指针想要实现的内容是和kmp一样的, 但是考

2014-11-25 19:38:42 289

原创 noip2014被虐记

所以说noip2014就这样结束了。从最开始的

2014-11-13 12:51:23 653

转载 manacher 算法

今天有一题要O(n)求回文串然后再匹配一下, 所以就学了一下这个manacher 算法, 以前好像也听过的, Apio有题好像也要用这个manacher算法:定义数组p[i]表示以i为中心的(包含i这个字符)回文串半径长将字符串s从前扫到后for(int i=0;i由于s是从前扫到后的,所以需要计算p[i]时一定已经计算好了p[1]....p[i-1]假设现在扫描到了i+k

2014-11-03 21:10:17 325

原创 分块

这个以后再写吧。。。写了一道bzoj2724, 蒲公英, 调不出来了, 先放下, 先继续复习NOIP的知识了#include #include #include #include #include #define MAXN 40005#define MAXM 36using namespace std;int n, m, b[MAXN], belong[MAXN], C

2014-11-03 19:01:29 340

转载 中国剩余定理

对于中国剩余定理有个简单理解并记忆的方法:中国剩余定理的思想在于先找到一个满足条件的数,不管是不是最小的,如果不是最小的就不断减公倍数,中国剩余定理的巧妙在于把满足条件的数分成三个部分相加,例如:假设满足条件的数为:M=3*5*a+5*7*b+3*7*c先让它满足条件1:除以3余1,我们看M的第一部分和第三部分能被3整除,只要第二部分除以3余1就行了,选择b=2就满足再满足条件2:

2014-11-02 11:04:21 406

原创 线性筛法

贾志鹏写的线性筛

2014-11-02 08:58:23 368

原创 计划

线性筛中国剩余定理splay调出

2014-11-02 08:42:49 315

转载 欧几里得算法小结

这篇文章转自  这里 欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明:      a可以表示成a = kb + r,则r = a mod b  假设d是a,b的一个公约数,则有  d|a, d|

2014-10-30 16:14:13 637

原创 重载运算符

重载运算符。

2014-10-29 21:14:07 354

原创 kmp总结

因为kmp学的时间有点早, 所以这也是我一直有些含糊的算法之一

2014-10-27 17:22:03 462

空空如也

空空如也

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

TA关注的人

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