自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Educational Codeforces Round 73 (Rated for Div. 2) D(dp)

D 给你n个点的初始值,和每个点提升1所需要的代价,问最少需要代价能够使任意相邻的两个点的值不同。 结论1, 每个点的提升值不超过2 例如 4 4 5 中间的4最多提升到6 那么对于每个点我们有三个状态 +0 +1 +2 ,下一个点也可能有3个状态, 则一趟状态转移有9个状态, 则dp的复杂...

2019-09-22 15:35:25

阅读数 5

评论数 0

原创 杭电多校第二场 I Love Palindrome String (Pam+Hash)

给你一个字符串,问长度为0~|s| 满足l~r为回文串 并且l~(l+r)/2 也为回文串的数量 由题意可知如果长度为偶数则 需要满足l~(l+r)/2 == (l+r)/2+1~r 如果长度为奇数则需要满足l~(l+r)/2==(l+r)/2~r 对于回文树上的每个节点,我们预处理每个节点...

2019-09-19 22:29:50

阅读数 5

评论数 0

原创 Codeforces Round #577 (Div. 2) D(DP)

给你一张n*m个的表格和k个点有宝藏, 以及只有b列的位置可以往上走,在其他列只能往左或者往右走,每次只能往左往右或者往上选择一个方向走一格,问从(1,1)找到所有宝藏最少需要多少步 做法: 考虑走完每层所有有宝藏的时候,必然是位于最左边有宝藏的位置和最右边有宝藏的位置 设dp[i][0], ...

2019-09-17 23:28:19

阅读数 4

评论数 0

原创 BZOJ 4892 DNA (sa+暴力)

给你一个母串 和 一个子串 问母串中有多少个子串更改不超过三个字母 可以和子串相匹配。 做法: 把母串和子串连起来建sa数组 然后 对母串的开头 和子串的开头进行枚举,如果首字母相同则求下一个跳到当前位置+lcp(母串当前位置,子串当前位置) 然后继续往下比较 最多只要跳不超过3次 就可以完成一...

2019-09-16 22:59:39

阅读数 4

评论数 0

原创 序列自动机学习

序列自动机一个可以n*(字符集)的复杂度预处理出字符串第i位及以后第一次出现大于字符j的位置 原理 if x>j dp[i][j]=i; else dp[i][j]=dp[i+1][j]; #include<iostream> #includ...

2019-09-09 20:47:31

阅读数 16

评论数 0

原创 回文树/回文自动机学习

len[i]:节点i的回文串的长度 next[i][c]:节点i的回文串在两边添加字符c以后变成的回文串的编号 fail[i]:指向i的最长回文后缀且不为i cnt[i]:节点i表示的回文串在S中出现的次数(建树时求出的不是完全的,count()加上子节点以后才是正确的) num[i]:以节点i回...

2019-09-07 21:03:34

阅读数 7

评论数 0

原创 2019徐州icpc网络赛补题

G :给你一个字符串求所有的回文子串中不同种类字母的数量(每个回文子串单独计算) 做法首先建立回文树,并求出与每个节点i回文串出现的次数,然后分别在偶节点0和奇节点0跑dfs, dfs的点来自next树,边表示字符串c,节点表示回文子串,则每次dfs到一个节点,答案更新为该点的回文串出现次数*...

2019-09-07 20:50:27

阅读数 11

评论数 0

原创 2019南京网络赛A 题解

首先O(1)算出 m个点的对应的beauty值,然后就变成了一个二维数点问题,在一个n*n的矩阵上,有m个点,q个询问 每次询问一个矩阵内的值之和。由于n的范围为1e6,二维树状数组加离散化或者二维前缀和加离散化开不下,如果用map存pair 会多加一个log 复杂度为n(logn)(logn...

2019-09-06 22:49:07

阅读数 19

评论数 0

原创 ac自动机学习

模板: #include<bits/stdc++.h> using namespace std; const int N=500005; struct ac_automation { int trie[N][26]; int e[N]; //字...

2019-09-01 11:34:23

阅读数 7

评论数 0

原创 2019牛客第十场题解(C/F)

C 题意:第i天在原来字符串的基础上在字符串的前面或者后面添加一个字符。问添加完字符后有多少种不同长度的循环节。 定义循环节为能把原字符串分割成长度为k的一个或多个部分。并且后面可以有或者没有循环节的开头部分。 也就是说 s[1]~s[n-x] == s[x+1]~ s[n] 则说明循环节为...

2019-08-19 21:22:14

阅读数 17

评论数 0

原创 2019牛客多校第八场题解(A)

A 给你一个n*m的01矩阵,求出所有最大全1矩阵的数量,保证任意两个矩阵不相互包含。 考虑单调栈求最大矩形面积的做法。 对于矩阵 0 0 0 0 0 0 1 0 0 1 1 0 1 1 11 0 0 0 0 我们先预处理h[i][j] 为以该行为底的最大高度。那么我们只要知道这...

2019-08-16 22:24:31

阅读数 17

评论数 0

原创 2019牛客多校第九场题解(D/E/J)

D 给你最多36个数和 一个定值s,找一个子集使这些数的和为s 做法 将集合分成两个部分,先对右边部分用二进制数枚举选取情况,然后求和之后用map存下来,键值为值,值为对应的二进制数 然后对左边部分用二进制数枚举选举情况,求和后用s-sum,看map中是否存在这个键值,如果存在则找到了答案...

2019-08-15 20:42:29

阅读数 36

评论数 0

原创 kmp&扩展kmp&manacher 学习

kmp: 求出模式串在文本串中第一次出现的位置 O(n+m) 扩展kmp: 求出模式串与文本串中每个i为下标的后缀串的最长公共前缀 extend[i] O(n+m) manacher:求出母串中的最长回文子串O(n) kmp模板: #include<cstdio&g...

2019-08-09 22:29:23

阅读数 4

评论数 0

原创 2019杭电多校第六场(C/E)

C:求出本质不同的回文串中能构成一个串为另一个串的子串所有字符串对的pair数 做法: 考虑每个点和他的fail点的贡献 , 在偶回文树和奇回文树上分别dfs, 求出该点和他的子节点的size, 然后该点的贡献就等于该点和他的fail点的未标记数,因为某个点和他的fail 点一定是该点的子节点的...

2019-08-07 22:20:29

阅读数 6

评论数 0

原创 后缀数组学习和经典题

模板 其中 build_sa,getheight, st_build, query的部分都是将原字符串经过最后一个字符为0的处理后的模板 倍增和D3C两个版本 倍增是 D3C接近 倍增版本 #include<iostream> #include<...

2019-08-04 16:11:12

阅读数 11

评论数 0

原创 2019牛客多校第四场A/K

A.给你一张n个点n-1条边的图,和k个关键点。求一个点到所有关键点距离最大值的最小为多少。 乍一看像是对答案二分,但是考虑两个相距最远的关键点,假设他们的距离为d,那么答案肯定为(d+1)/2 如果有一点到中心点的距离超过了(d+1)/2 ,那么这个点会成为最远关键点对中的一个。矛盾。 所...

2019-07-29 20:01:11

阅读数 23

评论数 0

原创 max answer 和 牛客多校第四场C

max answer 题意:给出一组数,求一个区间(l,r)中所有数之和与这个区间的最小数之积最大 做法:对于每个数a[i], 我们可以求出满足a[i]是最小数的 合法区间左边界l[i] 和 右边界r[i]; 然后对于每个a[i]接下来我们只要求 包含a[i]在内的在范围l[i]到r[i]内...

2019-07-28 23:40:30

阅读数 11

评论数 0

原创 2019牛客第三场(D/F)

D.Big Integer 题意: 当1<=p,n,m<=1e9时 求有多少对满足 做法: 考虑 则 则 Case1(p不为2,5,3) 然后由欧拉定理当p和10的时候有 则我们知道在i为0和p-1时 所以在...

2019-07-26 12:24:58

阅读数 22

评论数 0

原创 2019杭电多校第一场题解

1004 题意: 给你n+1辆车的车头距离终点的位置和车身长度, 以及每辆车的初始速度, 车子不会加速,当遇到前面一辆车的时候车子会瞬间减速并且和前面一辆速度相等,并且通过了终点线的车辆并不会停下来会继续行驶,问第0辆车的车头到达终点线所需要的总时间。 理解:当第0辆车经过终点线的时候无疑只有...

2019-07-23 23:33:16

阅读数 61

评论数 0

原创 Educational Codeforces Round 69 D

题意: 求 做法: 可以发现 在m,m*2,m*3 长度的区间内的K是 相等的分别为k ,k*2,k*3 所以我们可以在余数为0~m-1 的位置枚举起点, 然后以每个点作为终点求出cost 然后每到达一个可能为新的起点 维护最小前缀和,将该点作为新的起点或者还是继续作为终点 每次计算得到...

2019-07-23 22:09:12

阅读数 3

评论数 0

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