自定义博客皮肤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"文章中找新博客地址

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

原创 |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自动机,后缀家族……)本题设f[i]f[i]为给定串前ii个字符进行处理后最少删除的字符数。 刚开始想了个超时的方法。。然后发现

2017-06-17 17:17:11 586

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

BZOJ 1635 Luogu 2879 from: USACO 2007 Jan Sliver(USACO刷题第12题)之前看完题目想到差分约束,然后是个区间不知道怎么搞。。看完题解是差分序列。。 差分序列和差分约束并不是毫无关系啊。。差分约束运用于两个元素,差分序列运用于区间。。本题对于每个约束a,ba,b,如果a>ba>b,显然,交换不会影响结果 我们设f[i]f[i]为差分序列,然后

2017-06-17 11:37:37 576

原创 |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前面,那么吃的花为2∗d[b]∗t[a]2*d[b]*t[a] bb在aa前面,那么吃的花为2∗d[a]∗t[b

2017-06-16 19:49:10 494

原创 |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才需要考虑转移 那么我们设f[i][j]f[i][j]为铺到ii,成本为jj的最大有趣值 那么有下列转移方程 f[xi[i]+

2017-06-16 19:13:06 407

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

BZOJ 1650 Luogu 2855 from: USACO 2006 Dec Sliver(USACO刷题第9题)最小值最大,显然二分。 二分最小值最大距离,然后贪心处理。 这里我们在头尾各增加一个石头,贪心时先从第一个石头开始记为ll,然后往后扫描,当前扫描的石头记为rr,如果st[r]−st[l]<midst[r]-st[l]<mid的话,说明l,rl, r中间的石头就算都移走都不

2017-06-15 19:28:01 533

原创 |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那么就是一个答案。#include<cstdio>#include<cstring>#include

2017-06-15 18:35:53 372

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

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

2017-06-14 19:40:27 616

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

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

2017-06-13 19:38:52 450

原创 |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}^{x}vi[i]*i f[0][x]=∑i=nxvi[i]∗(i−n+1)f[0][x] = \sum_

2017-06-12 19:12:14 337

原创 |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]的值,aa为原序列 那么根据定义可以发现差分序列的前缀和就是原序列的数 那么输入a,ba,b, 我

2017-06-11 21:16:40 425

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

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

2017-06-11 18:53:56 429

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

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

2017-06-11 17:21:10 414

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

bzoj 1656 luogu 2864 from: USACO 2006 Jan (USACO刷题第1题)一道BFS。之前没看题解没什么思路搜索,看了题解后发现可以随便找一棵树然后垂直于坐标轴作一条射线,该线内的方块不可到达(相当于障碍物)。BFS记录到达每个点的最短步数,之后再在这条射线上进行合并局部解,得到最后的最优解。本题咋一看就是一个BFS,但是他要求绕着树林走,那么画一条射线来分解

2017-06-11 16:13:18 434

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

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

2017-06-11 10:36:04 286

原创 |poj 3264|RMQ|Balanced Lineup

poj 3264RMQ模板题。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define ms(i, j) memset(i, j, sizeof i)using namespace std;const int MAXN = 50000 + 5;int n, q;int h[MAXN], fmaxi

2017-06-11 10:27:39 300

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

poj 1743注意用heightheight分组如果最后一组最后一个元素在序列末,那么要进行处理!最方便是直接<=n<=n,还要注意的是不能重复,而且是mini+x<maximini+x<maxi不能是mini+x<=maximini+x<=maxi本题求的是长度最少为5的重复子串,并且重复子串可以加上或者减去一个数。我们将数字处理一下取差值,然后直接做,之后再结果+1+1即可#include<c

2017-06-10 19:50:41 307

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

poj 2299 注意开long long 权值线段树就是线段树每个节点存每个权值出现的次数,本题求逆序对应该算一个比较简单的权值线段树,注意离散化#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>using namespace std;#define ms(i, j)

2017-06-10 16:10:53 409

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

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

2017-06-10 14:41:24 517

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

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

2017-06-06 19:49:57 440

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

BZOJ 3531树剖以后每个宗教建立一棵线段树,节点太多用传统方法开数组肯定不行,这里进行改进,使用了动态开点线段树,即需要这个点再开这个点。#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i, j) memset(i, j, sizeof i)#define ll long l

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

原创 |UVA 11729|贪心|Commando War

UVA 11729 训练指南 第一章 例2 贪心,把完成任务时间最长的优先进行#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ms(i, j) memeset(i, j, sizeof i)const int MAXN = 1000 + 5;struct data{

2017-06-03 14:56:38 428

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

UVA 11292 训练指南 第一章 例1 两个数组排序后贪心处理即可,水题一道。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ms(i, j) memeset(i, j, sizeof i)#define FN2 "UVA11292"const int MAXN = 20

2017-06-03 14:54:23 383

空空如也

空空如也

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

TA关注的人

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