自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019hdu多校第二次1007 Find the answer 线段树板子。

Given a sequence of n integers called W and an integer m. For each i (1 <= i <= n), you can choose some elementsWk(1 <= k < i), and change them to zero to make∑ij=1Wj<=m. So what'...

2019-07-29 19:21:59 161

原创 楼爷八题值poj1743

mmp什么二分 也太难了先记着,回来再写。。。。。wa了30几发,每天早上醒来都要敲一遍这个题,真是怀疑人生。连续5天,后来发现GCC不能过,C++可以???这,,,,mmp#include<iostream>#include<cstdio>using namespace std;const int M=3e5+7;in...

2019-07-28 16:09:58 156

原创 后缀数组之寻找最大相同子串 poj3216

题意:给一个串,求出最长的那个相同的子串这个题使用后缀自动机是,首先给每个节点siz赋值为1 ,然后遍历,更新最大的长度。如果有某个串的个数不为1 ,就更新长度,使用后缀数组是:求出height,然后对答案二分,枚举答案,在判断答案是否满足条件后缀数组代码:#include<iostream>#include<cstdio>#incl...

2019-07-28 15:02:06 155

原创 后缀自动机之lcs

题意,给定两个字符串,求他们的最大的连续公共子串的长度是多少,数据范围是1--n以前有一个DP思路,但是今天可以使用后缀自动机来写。首先对其中一个串a构造后缀自动机,然后就跑每个后缀,如果匹配上了,就后缀加上一个字符,如果匹配不上就匹配更短的后缀题目:https://www.spoj.com/problems/LCS/en/#include <cstdio>#inc...

2019-07-27 19:11:39 315

原创 后缀自动机之统计不同子串个数

题目背景因为NOI被虐傻了,蒟蒻的YJQ准备来学习一下字符串,于是它碰到了这样一道题:题目描述给你一个长为N的字符串,求不同的子串的个数我们定义两个子串不同,当且仅当有这两个子串长度不一样 或者长度一样且有任意一位不一样。子串的定义:原字符串中连续的一段字符组成的字符串输入格式第一行一个整数N接下来一行N个字符表示给出的字符串输出格式一行一个整数,表示不一样...

2019-07-27 14:32:30 667

原创 后缀自动机之统计子串相同个数

这个东西太难理解了,自己投入了大概,,,20个小时,三天。但是学会之后就觉得是个渣渣,建议大家去洛谷看例题和博客。推荐一个博客 https://www.luogu.org/blog/Kesdiael3/hou-zhui-zi-dong-ji-yang-xie我只读了6遍,就读懂了。先做一个笔记:简述自动机构造过程,一开始有个空状态,然后添加字符,然后从长到...

2019-07-27 13:25:48 420

原创 treap平衡树练习

平衡树就是左旋右旋的一种树,赵老师讲数据结构的时候一直没实现,觉得很简单。结果是很简单,但是,,代码量有点不敢恭维。下面是一个大神的板子。自己敲了一遍。#include <bits/stdc++.h>using namespace std;#define maxn 100010#define INF 0x7fffffffstruct treapNode { ...

2019-07-25 19:43:53 190 2

原创 后缀数组

#include<bits/stdc++.h>using namespace std;const int M=1e6+50;string s;int x[M],y[M],c[M],sa[M],rk[M];//sa第i名的后缀是从第sa[i]个字母开始的,rk是第i名的后缀的位置是多少void getsa(){ for(int i=1;i<=n;i++)++c[x[i...

2019-07-24 23:12:33 110

原创 2019 Multi-University Training Contest 2 1011主席树

Problem DescriptionNsticks are arranged in a row, and their lengths area1,a2,...,aN.There areQquerys. Fori-th of them, you can only use sticks betweenli-th tori-th. Please output the maximum...

2019-07-24 16:12:36 422 3

原创 2019HDU多校第一场 1009 String 线性基+历史版本更新

这个题的意思是,任意给你区间,然后求区间的异或和最大值。和线性基模板不一样,这个是任意区间!!题目:http://acm.hdu.edu.cn/showproblem.php?pid=6579如果按照模板做法,对每个区间遍历一遍然后去求(线性基不支持删除操作)。那么,N方的复杂度就会爽歪歪。看了题解:是使用一个pos记录线性基的每个元素的历史版本是多少,使一个二维数组记录每个历史版...

2019-07-23 15:33:28 195

原创 线性基+查询集合空间是否含有x

一个线性基模板题:给出一组数,给出x,y,查询这组数能否和 x 异或得到 y。设我们这组数能异或出来z x^z=y, 那么x^y =z ,这样我们就转化为: 能否异或出x^y.模板题;题目连接:https://ac.nowcoder.com/acm/contest/180/D?&headNav=wwwAC代码:#include<bits/stdc++.h&g...

2019-07-23 14:30:46 161

原创 2019HDU多校第一场 1009 String

Problem DescriptionTom has a string containing only lowercase letters. He wants to choose a subsequence of the string whose length iskand lexicographical order is the smallest. It's simple and he ...

2019-07-23 13:35:52 486

原创 【模板】线性基

#include<bits/stdc++.h>using namespace std;#define LL long longLL p[70],ans,n,x;int main(){ scanf("%lld",&n); while(n--){ scanf("%lld",&x); for(int i=60;i&gt...

2019-07-22 17:07:32 95

原创 模板四十天之笛卡尔树

笛卡尔树:简介Cartesian Tree 是一种二叉树,每个节点具有两个值 key 和 value。只看key的话,笛卡尔树是一棵二叉搜索树 只看value的话,笛卡尔树是堆(但不一定是完全二叉树)笛卡尔树用二元组来构造树,利用树的构造过程和构造好的树来解决问题。构造下面我们以大根堆为例。利用栈可以实现线性时间构造笛卡尔树。将节点按照key升序排列,依次插入笛卡尔树,...

2019-07-20 11:04:12 118

原创 模板四十天之一 KMP

题目描述如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。为了减少骗分的情况,接下来还要输出子串的前缀数组next。(如果你不知道这是什么意思也不要问,去百度搜[kmp算法]学习一下就知道了。)输入输出格式输入格式:第一行为一个字符串,即为s1第二行为一个字符串,即为s2输出格式:若干行,每行包含一个整数,表...

2019-07-17 15:50:40 70

原创 最小表示法(循环同构)

看了很久也没有看懂 等以后有机会了吧洛谷P1368#include<bits/stdc++.h>using namespace std;int n,d[1000000];int main(){ scanf("%d",&n); for(int i=0;i<n;i++)scanf("%d",&d[i]); int i=0,j=1,k=0; w...

2019-07-17 15:03:18 421

原创 数据结构大纲

https://blog.csdn.net/weixin_43093481/article/details/82432254

2019-07-17 14:46:51 60

原创 gcd,扩展gcd,乘法逆元,快速幂,快速乘,中国同余定理,

#include<bits/stdc++.h>using namespace std;#define LL long long//gcdLL gcd(LL a,LL b){ return b?gcd(b,a%b):a;}//扩展gcd:已知ax+by=gcd(a,b),求x,y。 返回值是lr的gcd值。LL exgcd(LL a,LL b,LL &x,LL ...

2019-07-15 22:01:51 475

原创 线段树+区间求和

P3372 【模板】线段树 1如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1: 格式:1...

2019-07-14 13:57:47 411

原创 线段树+单点修改

洛谷P3347已知一个数列,你需要进行下面两种操作:1.将某一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3个整数,表示一个操作,具体如下:操作1: 格式:1 x k 含义:将第x个数加上k...

2019-07-14 13:40:55 151

原创 HDU1542线段树+扫描线

Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.QHand In HandOnline AcmersForum |DiscussStatistical Charts Problem Ar...

2019-07-12 11:32:04 217

原创 链式前向星代码

#include<bits/stdc++.h>using namespace std;const int maxv=1000000;struct Node{ int w,e,next;}edge[maxv];int cnt,head[maxv];void add(int u,int v,int w){//链式前向星 edge[cnt].w=w; e...

2019-07-08 19:23:55 114

原创 求公共祖先LCA

树剖:#include<bits/stdc++.h>using namespace std;const int N=5e5+10;struct edge{int to,nex;}e[N*2];int n,m,R,cnt=1,head[N],d[N],fa[N],size[N],son[N],top[N];void add(int x,int y){ e[cnt].to...

2019-07-07 18:13:30 160 1

原创 RMQ入门

RMQ就是一个查询区间最大最小值的问题,使用的是dp的思想(非常简单),干的是线段树的工作。但是RMQ,,太TM简单了,简单到一学就会。RMQ:RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。分析:对于该问题...

2019-07-06 21:52:13 3498

空空如也

空空如也

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

TA关注的人

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