自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 【新坑已填】后缀数组总结篇

首先,后缀数组的无敌功能不用我来叙述,一旦能够确定题目能够用后缀数组解决,这个题就最少成功了百分之五十,作为字符串解决方法里面,后缀数组是比较方便且很理想的解决方法,但是往往需要对题目进行分析来确定是否能够使用,而后缀数组的实现及原理,我这里就不详细的叙述,网上有学习博客,可以弄清楚模板的含义,以及sa数组,rank数组,height数组的相关用法和实现过程,这里我主要分享一下我在做后缀数组题中让

2017-09-06 21:30:15 256

原创 2017CCPC网赛1004(HDU 6153)

题意:给你两个字符串  求第二个字符串的后缀在第一个字符串中出现的次数;题解:比赛的时候全懵逼,各种奇葩思路,后缀数组优化KMP什么的,最后结束比赛才在学长的指导下,知道了用KMP的性质和后缀数组的特性去解题,直接A掉#include#include#include#include#include#include#include#include#define N 10000

2017-08-19 23:35:08 606

原创 浅谈后缀数组(对模板的理解

显然可知对于后缀数组最难理解的就是sa数组和rank数组的构建,而sa与rank数组之间有一个相互转化关系,这就必须理解sa数组和rank数组的含义,sa数组代表的是排名为i的后缀第一个字符所在的位置,而rank数组则表示的是第i个位置的后缀的排名;通过这个关系,我们可以实现sa与rank之间的转化,所以整个关键就成了如何去求他们其中的一个,根据,我的学习笔记来源这几个大神的博客可做参考:1,ht

2017-07-26 09:29:21 222

原创 POJ 1321:棋盘问题

考试周后的第一发 写搜索题找手感题意:给你一个n*n的棋盘及其放棋子的位置 给定旗子数目 问在满足条件下 能够有多少种不同放棋子的方法  写了一发DFS 差点写炸 不断搜索判断是否符合题意即可;#include#include#include#include#include#include#include#include#includeusing namespace std;

2017-07-17 22:52:44 197

原创 POJ 2031Building a Space Station

题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用,最小生成树板子题,细心处理数据即可;#include#include#include#include#include#include#include#include#include#include#includeusing

2017-06-24 02:06:06 148

原创 POJ 2421Constructing Roads

题意:提供任意两点直接的距离,然后在已知某两点直接已经修建好路的情况下,问还需要修长的最小距离,注意!再用 kruskal 算法的时候注意有些已经修好的边可能出现重复的  所以需要判断处理,其他都是套路,细心处理即可;#include#include#include#include#include#include#include#include#includeusing na

2017-06-21 01:02:13 167

原创 POJ 1287Networking

题意:多组数据输入的最小生成树果题#include#include#include#include#include#include#include#include#includeusing namespace std;int first[505];int vis[505];typedef struct node{ int x; int y; int date;

2017-06-21 01:00:10 159

原创 POJ 1251Jungle Roads

题意:最小生成树模板题,主要是输入方面的处理,数据不大,可以采用cin输入,也可以用scanf用getchar()来控制即可;#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct node{ int x;int y

2017-06-21 00:57:47 117

原创 XDOJ 1152: 数据库查询

题意:数据结构题,stlAC掉;#include#include#include#include#include#include#include#includeusing namespace std;typedef struct node{ string a; int b;}node;struct cmp{ bool operator()(node aa,node

2017-06-18 01:35:05 240

原创 POJ 1511Invitation Cards

题意:给你一些边和点的关系,要你从1出发到其它点距离之和的最短路加上从其他点到1最短路的和,这题明显的正向图和反向图,spfa+前向星能AC,但是用dij+优先队列的话配上前向星理论上能过,但是别用vector,因为数据太大会炸内存,其他就是模板了;#include#include#include#include#include#include#include#include#in

2017-06-17 16:11:57 180

原创 POJ 2240Arbitrage

题意:给一系列的货币,并给出其转化比率,问你是否存在一种转换关系使自己获得利息;从题意来说很简单一个判正环的,因为只要出现正环,就一定存在获得利息,所以spfa判正环即可;对于输入的字符串可以采用map用编号替换掉#include#include#include#include#include#include#include#include#include#includeusi

2017-06-17 15:36:28 174

原创 POJ 3660Cow Contest

题意:大概就是给你两个数,代表A能够打败B,也就是说你建图时,有一条A到B权值为1的边,而现在要求能确定的位置,意思就是在一个某一个位置要么有从源点到其他点的边或者从其他点到源点的边,统计这样的点有多少个即可,题目数据只有100个点,直接floyd,一般而言,floyd的范围在1000以内;#include#include#include#include#include#include

2017-06-17 12:43:42 186

原创 POJ 3259Wormholes

题意:名字很高端的题,虫洞,给定两点直接进行跳跃,问能否回到从某点出发之前的时间,也就是说构成一个回路,形成负环即可,所以说能否构成负环就成为这题的解法,也就是判断负环;#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3fusing nam

2017-06-17 00:37:58 126

原创 POJ 1860Currency Exchange

题意:最短路变形题吧,就是不同种货币之间有转换关系,现在给出这种关系让你判断经过一系列转换后,回到初始货币时,能否盈利,这个需要判断是否会出现一直在一个环类不断循环,也就是会出现正环,应采用spfa,判断正环,有正环直接跳出,能盈利即可;#include#include#include#include#include#include#include#include#includ

2017-06-16 23:24:43 156

原创 HDU 4027Can you answer these queries?

题意:先说下写这题的感受吧,在已知这个题开根号的次数不会超过7次的情况下,还是写了2个多小时,完全整个人都是懵的,出了很多小错误,讲道理,这题就只有要注意开根号的次数,加上类似于剪枝的东西,是能过的,但就是很菜,最后交的手都软了,还得多练练线段树;#include#include#include#include#include#include#include#include#inc

2017-06-16 21:16:13 181

原创 POJ 3264Balanced Lineup

题意:线段树水题,区间取最大值最小值即可,不用更新,直接跑;#include#include#include#include#include#include#include#define N 50005#define INF 0x3f3f3f3fusing namespace std;typedef struct node{ int x;int y;int M;int m

2017-06-16 00:37:48 152

原创 ZOJ 1610Count the Colors

题意:给定一些操作,不断更新一些区间的颜色,求最后间断每种颜色的个数,直接线段树处理,每次更新,加上lazy标记,注意如何处理区间的端点是这题的关键;#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3f#define N 8005using

2017-06-16 00:14:47 142

原创 HDU 1698Just a Hook

题意:水题线段树,区间更新带上+lazy标记,最后统计即可;#include#include#include#include#include#include#include#include#include#define N 100005using namespace std;typedef struct node{ int x;int y;int date;int p;

2017-06-15 14:20:12 179

原创 HDU 2795Billboard

题意:(刚开始没看懂题啊  很僵硬  )大概意思就是给你一个n*m的海报 然后  让你贴小广告,优先往上和往右,很明显要建树,这里对于数的叶子节点要分类考虑,首先n与K的关系,n#include#include#include#include#include#include#include#include#include#define N 200010#define INF 0

2017-06-15 00:06:05 150

原创 HDU 1556Color the ball

题意:线段树水题,区间更新,带上lazy标记即可;#include#include#include#include#include#include#include#include#include#define N 100005#define INF 0x3f3f3f3fusing namespace std;typedef struct node{ int x;int

2017-06-14 23:04:42 144

原创 POJ 2299Ultra-QuickSort

题意:线段树求逆序对经典题目,需要离散处理,但是用stl处理的话会T,手动二分处理即可;#include#include#include#include#include#include#include#include#include#define N 500005using namespace std;typedef struct node{ int x;int y;int

2017-06-14 22:37:59 136

原创 HDU 1394Minimum Inversion Number

题意:很水的用线段树求逆序对的题,时间复杂度在nlogn适合初学者,数据较小不用离散化,直接敲即可;#include#include#include#include#include#include#include#include#include#define N 10005#define INF 0x3f3f3f3fusing namespace std;typedef

2017-06-14 18:13:18 117

原创 XDOJ 1024: 简单逆序对

题意:这题解法不唯一,我刚学线段树,就直接上线段树了,一般来说求逆序对,对序列离散化,然后对于原序列找出每个元素对应位置,然后依次放入线段树中,查找1-i-1区间,可以找出比a[i]小的数据数,然后用一共比它小的数减去这个数据,即为逆序对;#include#include#include#include#include#include#include#include#inclu

2017-06-14 00:33:07 367

原创 XDOJ 1091: 看Dota视频的V8

题意:典型的贪心例题,直接按照已经准备的贪心策略,对结束时间按照从小到大排序,直接水即可;#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct node { int x; int y; friend bool

2017-06-13 22:02:01 173

原创 XDOJ 1023: IP查询

题意:这个题的心路历程最为坎坷,从刚开始接触C的时候,觉得高大上,然后看了下线段树,觉得这题能水过去,结果TLEn次,REn+1次,最后不得以还是采用了二分的方法,但是引发了cout血案,因为这个一直TLE,直到最后改了printf终于,AC,23333333#include#include#include#include#include#include#include#includ

2017-06-13 21:59:03 207

原创 XDOJ 1090: 爬树的V8

题意:本着切水题的态度,做了这个题,然后发现是最短路的变形,而且数据很小,floyd口胡觉得能过,具体没试,直接上自己研究的dij+优先队列,事实上跑的还是比别人慢,333;#include#include#include#include#include#include#include#include#include#define INF 0using namespace

2017-06-13 00:45:08 195

原创 XDOJ 1035: 数独

题解:超级大水题,就是判断行列上是否都是1-9个不同数字组成,AC过了,但是跑的有点慢,水题都这么慢,我太菜了,2333333#include#include#include#include#include#include#include#includeusing namespace std;int main(){ int m; int a[10][10],b[10][10]

2017-06-13 00:14:37 186

原创 XDOJ 1088: AK后的V8

题解:水题一个,大概意思就是给n个数,然后按照字典序输出即可(纯粹告诉自己,今天出去玩了,得写两个题,所以切了一个水题,233333;上代码;#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct node {

2017-06-13 00:12:27 282

原创 XDOJ1156: 等待队列

题意:大概就是有三种操作吧,第一种在队列后面加入新人,引入一个不耐烦程度,第二种第一个人出队(直接让头结点的序号+1即可),第三种统计在队伍里面不耐烦程度最高的数(PS:随着操作的进行队列中每一个人的不耐烦程度+1),刚开始我是将每个节点加入线段树中,对于每个操作,打上lazy标记,用线段树区间维护,然后TLE了,改了又改,在室友的提醒下,原来我可以把每个加入的节点都统一在第一个节点时插入,只要保

2017-06-12 22:59:29 235

原创 XDOJ 1009: Josephus环的复仇

思路:通过样例找出规律,大概就是每次线段树维护后,能够确定找到下一个输出的位置,然后把这个位置的叶子节点设置为0,再次维护线段树即可;#include #include#include#include#include#include#include#include#include#include#define N 200005using namespace std;int

2017-06-11 17:08:26 306

空空如也

空空如也

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

TA关注的人

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