随笔分类 -  Luogu

摘要:例题传送门 好久没写博客了,写一发。 之前学的Manacher算法拿到模板题找到那最后一个点的错误了,TMD没开long long。 Manachar算法主要是处理字符串中关于回文串的问题的,它可以在 O(n)的时间处理出以字符串中每一个字符为中心的回文串半径,由于将原字符串处理成两倍长度的新串,在 阅读全文
posted @ 2018-04-14 19:07 Cptraser 阅读(290) 评论(0) 推荐(0)
摘要:题目传送门 借这道题练一下Treap和Splay的板子。 code: #include <cstdio> #include <cstdlib> using namespace std; int read() { char c;while(c=getchar(),(c<'0'||c>'9')&&c!= 阅读全文
posted @ 2018-03-09 15:27 Cptraser 阅读(200) 评论(0) 推荐(0)
摘要:模板传送门 KMP的模板,但是要输出Nxt,搞得朱洪dalao的优化打不了。(题外话) KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息 阅读全文
posted @ 2018-03-09 12:40 Cptraser 阅读(343) 评论(0) 推荐(0)
摘要:题目传送门 看到数据范围就果断装压。 设f[i][j]表示i状态下最后一个数字为a[j]。 code: 阅读全文
posted @ 2018-01-24 18:58 Cptraser 阅读(138) 评论(0) 推荐(0)
摘要:题目传送门 这道题比较水,设f[i][j]表示i~j区间合并的最大值。 #include <cstdio> #define max(a,b) a>b?a:b using namespace std; int N,x,f[250][250],ans; int main(){ scanf("%d",&N 阅读全文
posted @ 2017-10-22 19:24 Cptraser 阅读(191) 评论(0) 推荐(0)
摘要:题目传送门 ·背包 这可以说是一道背包的变形。 首先需要考虑到的是如何将ta转换为一个正常 的背包。 这些数据有一个让我们都十分不爽的地方就是有两个值。 所以我们就设置一个基准值,将失败的经验值当做基准值,这样就只剩一个win-lose的“背包价值”了。 接下来即进行0-1背包操作 最后输出时将减去 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(118) 评论(0) 推荐(0)
摘要:题目传送门 带权并查集问题。 用fr[x]数组记录x战舰前(不包括自己)有几艘战舰,beh[x]数组记录x战舰后(包括自己)有几艘战舰。 并查集即可。 code: #include <cstdio> #include <cmath> #include <iostream> using namespa 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(121) 评论(0) 推荐(0)
摘要:题目传送门 这是一道典型的记忆化搜索题。 f[x][y]表示以x,y为右下角的方案数。 code: #include <cstdio> #define mod 1000000007 using namespace std; int n,m,k,a[751][751],f[751][751]; int 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(148) 评论(0) 推荐(0)