自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客停更,请到"再见,CSDN"文章中找新博客地址

博客停更,请到"再见,CSDN"文章中找新博客地址

原创 |题目分类|BZOJ、Poj、Hdu题目分类

BZOJ:[数论]BZOJ 1477:裸的扩展欧几里得算法 [线段树]BZOJ 1593:经典线段树模型 [2-SAT]BZOJ 1823:2-SAT经典模型 [平衡树]BZOJ 2028:求大于x的最小值,set可以过 [树形DP]BZOJ 2060:经典树形DP模型 [2-SAT]B...

2017-02-07 15:27:58 2033 0

原创 |BZOJ 1633|字符串DP|[Usaco2007 Feb]The Cow Lexicon 牛的词典

BZOJ 1633 Luogu 2875 from: USACO 2007 Jan Sliver(USACO刷题第13题)刚开始根本没想到DP,什么kmp,AC自动机,后缀数组都想了。。看了题解才知道 解决字符串的几大武器:(字符串DP,字符串Hash,KMP,AC自动机,后缀家族……)本题...

2017-06-17 17:17:11 301 0

原创 |BZOJ 1635|差分序列|[Usaco2007 Jan]Tallest Cow 最高的牛

BZOJ 1635 Luogu 2879 from: USACO 2007 Jan Sliver(USACO刷题第12题)之前看完题目想到差分约束,然后是个区间不知道怎么搞。。看完题解是差分序列。。 差分序列和差分约束并不是毫无关系啊。。差分约束运用于两个元素,差分序列运用于区间。。本题对于...

2017-06-17 11:37:37 298 0

原创 |BZOJ 1634|贪心|[Usaco2007 Jan]Protecting the Flowers 护花

BZOJ 1634 Luogu 2878 from: USACO 2007 Jan Sliver(USACO刷题第11题)刚开始naive的认为比较函数是第一关键字dd第二关键字tt,狂炸的我..对于两头牛a,ba, b,他们的先后顺序不影响其他牛吃花的个数 那么考虑 aa在bb前面,那么...

2017-06-16 19:49:10 262 0

原创 |BZOJ 1649|二维背包|[Usaco2006 Dec]Cow Roller Coaster

BZOJ 1649 Luogu 2854 from: USACO 2006 Dec Sliver(USACO刷题第10题)显然是二维费用01背包。 但是直接做会超时,而且还有连接的限制。 根据题意可以知道只有在wi[i]+xi[i]=jwi[i]+xi[i]=j才需要考虑转移 那么我们设...

2017-06-16 19:13:06 249 0

原创 |BZOJ 1650|二分|贪心|[Usaco2006 Dec]River Hopscotch 跳石子

BZOJ 1650 Luogu 2855 from: USACO 2006 Dec Sliver(USACO刷题第9题)最小值最大,显然二分。 二分最小值最大距离,然后贪心处理。 这里我们在头尾各增加一个石头,贪心时先从第一个石头开始记为ll,然后往后扫描,当前扫描的石头记为rr,如果st...

2017-06-15 19:28:01 346 0

原创 |BZOJ 1648|DFS|[Usaco2006 Dec]Cow Picnic 奶牛野餐

BZOJ 1648 Luogu 2853 from: USACO 2006 Dec Sliver(USACO刷题第8题)记录一下每个牧场的奶牛个数,之后如果一个牧场有牛就dfs遍历,把遍历到的点的tot[i]tot[i]都加上这个奶牛数,然后最后统计每个牧场如果tot[i]=ktot[i]=k...

2017-06-15 18:35:53 230 0

原创 |BZOJ 1661|暴力|[Usaco2006 Nov]Big Square 巨大正方形

BZOJ 1661 Luogu 2867 from: USACO 2006 Nov Sliver(USACO刷题第7题)枚举两个点,第二个点要在第一个点的右下,那么这样我们就可以根据一个公式来求另外两个点了。之后四个点求出来后判断四个点是否都可行,然后记录这四个点中J的数量,如果>=3&...

2017-06-14 19:40:27 426 0

原创 |BZOJ 1660|单调栈|[Usaco2006 Nov]Bad Hair Day 乱发节

BZOJ 1660 Luogu 2866 from: USACO 2006 Nov Sliver(USACO刷题第6题)单调栈,对于每个数,他后面所有比他小的数(中间不能有大于他的数)都会对答案做出贡献。 那么我们可以用单调栈来维护这个”后面所有比他小的数(中间不能有大于他的数)”#inc...

2017-06-13 19:38:52 283 0

原创 |BZOJ 1652|区间DP|[Usaco2006 Feb]Treats for the Cows

BZOJ 1652 Luogu 2858 from: USACO 2006 Feb Sliver(USACO刷题第5题)显然DP。 设f[i][j]f[i][j]为左取ii个,右取jj个的最大值 初值: f[x][0]=∑i=1xvi[i]∗if[x][0] = \sum_{i=1}^{...

2017-06-12 19:12:14 192 0

原创 |BZOJ 1651|差分序列|[Usaco2006 Feb]Stall Reservations 专用牛棚

BZOJ 1651 Luogu 2859 from: USACO 2006 Feb Sliver(USACO刷题第4题)首先需要发现的是,覆盖次数最多的点就是答案 然后可以用线段树求解了 但是这里要介绍一个很有用的东西,差分序列 差分序列ff记录a[i]−a[i−1]a[i]-a[i-1...

2017-06-11 21:16:40 249 0

原创 |BZOJ 1655|无限背包|高精度|[Usaco2006 Jan] Dollar Dayz 奶牛商店

BZOJ 1655 poj 3181 from: USACO 2006 Jan Sliver(USACO刷题第3题)很容易看出本题是个无限背包方案数的dp,但是本题数据大会爆long long,那就可以把dp数组拆分为两个数组,类似于高精度压位地做#include<cstdio> ...

2017-06-11 18:53:56 228 0

原创 |BZOJ 1654|强连通分量|[Usaco2006 Jan]The Cow Prom 奶牛舞会

BZOJ 1654 Luogu 2863 from: USACO 2006 Jan Sliver(USACO刷题第2题)tarjan找强连通分量,最后输出强连通分量保含节点个数>=2>=2的强连通分量个数即可,几乎是模板题#include<cstdio> #includ...

2017-06-11 17:21:10 222 0

原创 |BZOJ 1656|BFS|[Usaco2006 Jan] The Grove 树木

bzoj 1656 luogu 2864 from: USACO 2006 Jan (USACO刷题第1题)一道BFS。之前没看题解没什么思路搜索,看了题解后发现可以随便找一棵树然后垂直于坐标轴作一条射线,该线内的方块不可到达(相当于障碍物)。BFS记录到达每个点的最短步数,之后再在这条射线上...

2017-06-11 16:13:18 233 0

原创 |算法讨论|RMQ 学习笔记

模板及讲解 运用st表实现区间询问区间最大/最小,初始化时间复杂度O(nlogn)O(nlogn), 查询O(1)O(1) 模板题:poj 3264#include<cstdio> #include<cstring> #include<algorithm> ...

2017-06-11 10:36:04 184 0

原创 |poj 3264|RMQ|Balanced Lineup

poj 3264RMQ模板题。#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define ms(i, j) memset(i, j, sizeof i)...

2017-06-11 10:27:39 199 0

原创 |poj 1743|后缀数组|Musical Theme

poj 1743注意用heightheight分组如果最后一组最后一个元素在序列末,那么要进行处理!最方便是直接<=n<=n,还要注意的是不能重复,而且是mini+x<maximini+x<maxi不能是mini+x<=maximini+x<=maxi本题求的是...

2017-06-10 19:50:41 164 0

原创 |poj 2299|权值线段树|Ultra-QuickSort

poj 2299 注意开long long 权值线段树就是线段树每个节点存每个权值出现的次数,本题求逆序对应该算一个比较简单的权值线段树,注意离散化#include<cstdio> #include<cstring> #include<algorithm> ...

2017-06-10 16:10:53 219 0

原创 |Poj 3581|后缀数组|Sequence

poj 3581 1. 因为第一个数比后面的大,所以将原串翻转后找出排第ii位的后缀输出,符合SA[i]>=2SA[i]>=2的最小ii(后缀数组中的排列是字典序) 2. 之后将之前已经处理的数据删掉,然后题目变为将剩下的数据分为两份翻转后字典序最小,那么我们设SS为这个序列,S1...

2017-06-10 14:41:24 234 0

原创 |Poj 3623|后缀数组|Best Cow Line, Gold

poj 3623 字符串翻转后的和原串后的数组进行求后缀数组,然后之后两个指针i,ji,j选择两端rkrk值最小的输出,注意格式#include<cstdio> #include<cstring> #include<algorithm> #include<...

2017-06-06 19:49:57 272 0

原创 |BZOJ 3531|树链剖分|动态开点线段树|[Sdoi2014]旅行

BZOJ 3531树剖以后每个宗教建立一棵线段树,节点太多用传统方法开数组肯定不行,这里进行改进,使用了动态开点线段树,即需要这个点再开这个点。#include<cstdio> #include<cstring> #include<algorithm> #inc...

2017-06-06 18:46:24 283 2

原创 |UVA 11729|贪心|Commando War

UVA 11729 训练指南 第一章 例2 贪心,把完成任务时间最长的优先进行#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define ms(i,...

2017-06-03 14:56:38 277 0

原创 |UVA 11292|贪心|Dragon of Loowater

UVA 11292 训练指南 第一章 例1 两个数组排序后贪心处理即可,水题一道。#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define ms(i...

2017-06-03 14:54:23 276 0

原创 |poj 3261|后缀数组|二分|Milk Patterns

poj 3261还是一样的,这题是整形数字,也可以转为字符串算法做,用后缀数组,二分以后分组判定就可以了#include<cstdio> #include<cstring> #include<algorithm> #define ms(i, j) memset(...

2017-05-29 21:27:42 308 0

原创 |spoj 694|后缀数组|Distinct Substrings

spoj 694给出一个字符串,求字符串中不相同的子串个数。我们可以知道,字符串中的每个子串都是某个后缀的前缀,于是题目转化为求不相同的后缀的前缀问题。对于每一个SA[k]SA[k]开始的后缀,将会增加n−SA[k]+1n-SA[k]+1个后缀,而其中height[k]height[k]个是和前面...

2017-05-29 16:14:04 211 0

原创 |poj 1226|后缀数组|二分|Substrings

poj 1226几本上与这题一样,只不过这里还要把读入的字符串的翻转后的字符串也要连上#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define ms...

2017-05-29 14:01:05 273 0

原创 |poj 3294|后缀数组|二分|Life Forms

poj 3294和这题差不多,二分后后缀数组heightheight判断,此题要输出所有的解,用个数组存下每个解在aa中的起始位置即可。不同的是,此题判断时一定要找到一个height[i]<xheight[i]<x或者循环完毕heightheight才能更新解,这样才能防止重复解出现。...

2017-05-29 09:36:47 226 0

原创 |hdu 2328|后缀数组|二分|Corporate Identity

hdu 2328给出n个字符串,输出他们的最长公共子串,无解输出”IDENTITY LOST”用不同的符号连接每个字符串,然后二分公共子串的长度,在heightheight数组中看有没有连续nn个heightheight大于公共子串的长度,如果有,那么更新答案。 (此题暴力比SA快,而且poj上...

2017-05-28 18:54:28 376 0

原创 |poj 2774|后缀数组|Long Long Message

poj 2774给出两个字符串,求这两个字符串的公共子串。我们可以连接两个字符串,中间插入$\$,然后构造后缀数组,用heightheight数组解决。以abbbc和bbc为例。 因为后缀数组是字典序排的,所以排名最近的两个后缀拥有的最大公共前缀一定比不相邻的长。所以,由图可知,只要后缀ii...

2017-05-27 22:34:11 211 0

原创 |算法讨论|后缀数组 学习笔记

模板及讲解 解决字符串的有力工具。 直接上代码,注释讲解(此题为uoj #35)#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define ms(...

2017-05-25 21:15:17 196 0

原创 |BZOJ 2763|最短路|[JLOI2011]飞行路线

BZOJ 2763分层图最短路注意:priority_queue默认排序序列是从大到小的,所以重载小于符号时要a>b 以后权值一律写w,不要用v或c!#include<cstdio> #include<cstring> #include<algorithm&g...

2017-05-20 23:19:19 251 0

原创 |BZOJ 4196|树链剖分|线段树|[Noi2015]软件包管理器

BZOJ 4196树链剖分支持修改查找子树和到根的路径权值和即可解决,注意pushdown放前面注意lc,rc会爆的情况#include<cstdio> #include<cstring> #include<algorithm> #define fo(i, j,...

2017-05-20 20:43:48 215 0

原创 |poj 1144|割顶|Network

poj 1144直接割顶模板。注意此题卡前向星#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define ms(i ,j) memset(i, j, ...

2017-05-20 15:28:19 180 0

原创 |poj 1523|割顶|[HAOI2015]SPF

poj 1523 直接模板即可。 注意不一定是连通图。#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define ms(i ,j) memset(...

2017-05-20 15:22:13 201 0

原创 |BZOJ 4034|树链剖分|线段树|[HAOI2015]树上操作

BZOJ 4034树剖后线段树维护。 此题要修改子树的权,根据树剖性质子树是连续的一段,运用时间戳思想即可。注意开long long,第一次没开就WA了(痛不欲生)#include<cstdio> #include<cstring> #include<algorit...

2017-05-19 20:28:22 233 0

原创 OI中的常用数据生成

一、随机生成一个小于等于nn的数int RAND(int n) { srand((int)time(0)); return rand()%n+1; }二、随机生成排列int t[MAXN]; int mp(int n) { int i; srand((int)ti...

2017-05-19 17:55:59 681 0

原创 |poj 3237|树链剖分|线段树|Tree

poj 3237树剖+线段树。 刚开始想用记录该区域被NEGATE了几次,结果发现不可行,翻别人博客发现了原来维护最大值maxvmaxv和最小值minvminv,NEGATE就是maxv=−minv,minv=maxvmaxv=-minv, minv=maxv, 正确性显然。 #include&...

2017-05-18 21:00:19 204 0

原创 |hdu 3966|树链剖分|线段树|Aragorn's Story

hdu 3966裸树剖+线段树维护,while写成if, 数组开小搞得我调试了好久。。静态查错真的不能快了#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #incl...

2017-05-18 18:44:24 201 0

原创 |poj 2186|强连通分量|Popular Cows

poj 2186这题求所有满足被所有点能够到达的节点,那么我们可以进行缩点,缩点之后得到一个有向DAG图,统计新图的出度,如果有一个强连通分量的出度是=0的,那么输出这个强连通分量的大小,如果有多个,输出0#include<cstdio> #include<cstring>...

2017-05-16 19:09:12 192 0

原创 |算法讨论|树链剖分 学习笔记

模板及讲解 树链剖分解决树上的修改问题。 将树剖成一条条链,再用线段树、树状数组等维护#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define ...

2017-05-15 21:03:55 217 0

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