CSP2019赛前小复习:
虽然觉得复习也没有什么用,还不吃好睡好,保持好心情。
SA:
坑就那几个。
\(s[0]=s[n+1]=-1\).
和\(rank\)交换的\(tp\)数组的\(tp[n+1]=0\)。
一般加上这两个多测也没有问题。
题:https://www.luogu.org/problem/P5576
https://www.luogu.org/record/26886770
数据有锅调了我好久,艹。
无非是启发式合并,不难,就是有点长。
SAM:
没写改儿子看了半天……
写完之后注意要写个递归验一验。但是似乎改儿子没写验不出来?
题:https://www.luogu.org/problem/P4022
https://www.luogu.org/record/26899209
广义SAM+单调队列
AC自动机:
注意\(fail[1]=0\),然后走到0时要回1,除非用另一种写法。
然后就是fail和含义,和一定要传fail。
题:
https://www.luogu.org/problem/P2603
https://www.luogu.org/record/26940875
因为几何太差WA了二十发。
考虑那四种操作也就是这两个图形相似。
也就是相邻边的夹角和边的长度的比值相同。
边的长度比值好搞,直接用平方比约一约就好了。
角的话考虑用叉积比点积,就是\(tan β\)。
但是注意角度可以负过来,即整个图形时针方向相反。
所以叉积比点积比值全部相反,也视作相同,所以正着反着做两遍。
然后当叉积为0时,会算重一遍。
搞完后再离散一下,跑个ac自动机,沿fail链传一下。
manacher:
日常手推,然后写错了……
题:
https://www.luogu.org/problem/P4287
https://www.luogu.org/record/26962019
考虑manacher新添加一个回文串是判断它的半部分是不是回文就好了。
也可以用回文树多记个标记表示跳fail最接近一半的回文后缀的位置,不断更新这个东西就好了。
exkmp:
每次写再看看之前的代码都会发现完全不一样。
题:
https://ac.nowcoder.com/acm/contest/1099/C
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41755315
把串反过来,自我匹配后统计一下就好了。
回文树:
题:
https://www.luogu.org/problem/P1659
https://www.luogu.org/record/27080559
这题用manacher做应该更简单的,实在是没有题写了。
CSP2019赛前小复习:的更多相关文章
- 2016年11月24日--面向对象、C#小复习
面对对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象.对同类对象抽象出其共性,形成类.类中的大多数数据,只能用本类的方法进行处理.类通过一个简单的外部接口与外界发生关系,对象 ...
- noip级别模板小复习
不是很noip的知识点就不写了. dij什么的太easy就不写了. 缩点 注意\(Tarjan\)在缩边双和求强联通分量时候的区别. 一个要判断是否在栈内一个不要. 最后\(topsort\)来\(d ...
- C 小复习
C语言 signed 与 unsigned: C语言中,当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型 signed ; unsigned ; cout << a ...
- js 小复习2
1.数组 findIndex() indexOf() // findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引.否则返回-1. function isBigEnough(ele ...
- js 小复习1
1.数组 增删改查 , , , , ]; // arr.push(18); // 添加数组后面 更改长度 // arr.unshift(12); // 添加数组前面 // arr.pop(); // ...
- CSP-S 赛前模板复习
快读模板 这个连算法都算不上... inline int read() { int x=0,f=1; char ch=getchar(); while(ch<'0' || ch>'9') ...
- es6简单小复习
Ecmascript 6 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了. Ecmascript 是 JavaScript 语言的 ...
- 终极蛇皮上帝视角之铁头娃之鲁迅之暑假闲的慌之bilibili看尚学堂网课的非洲酋长java小复习
转自https://www.sxt.cn/Java_jQuery_in_action/eight-cache-problem.html 第一个点 自动装箱与拆箱的功能是所谓的"编译器蜜糖(C ...
- 关于ACM,关于CSU
原文地址:http://tieba.baidu.com/p/2432943599 前言: 即将进入研二,ACM的事情也渐渐远去,记忆终将模糊,但那段奋斗永远让人热血沸腾.开个贴讲讲ACM与中南的故事, ...
随机推荐
- boost circularBuffer
1. circular buffer has two fundamental properties: (1): The capacity of the circular buffer is const ...
- 提高wifi速度的设置办法
系列的提高wifi速度的设置办法 在DNS一栏有你们家的地址,在你们家的地址前输入“114.114.114.114”并以“,”结尾(注意:要用英文输入法哦.) 设置完后点击左上角的“无线局域网”回到初 ...
- Java序列化及反序列化
序列化概念: 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程. 2.为什么需要序列化与反序列化 我们知道 ...
- sql 2008查看进程情况和对应语句,检查死锁进程
---------------------------------进程情况1----------------------- --得到SPID if object_id('tempdb..#info') ...
- jenkins clone代码时间太长怎么办?
在Jenkins的默认配置中,clone代码时会拉取所有历史版本的代码,而且默认的超时时限只有10分钟.这就造成在某些项目中,由于代码量本身就比较大,历史版本也比较多,再加上网络环境不是特别好,Jen ...
- java 字符串的操作方法
方法 作用 范例 indexOf() 找到第一个字符出现的位置,()以下标来判断,返回的是字符所在的下标 int num = String.indexOf("字符") l ...
- js另存为、打印、属性、加入收藏、关闭等代码
js打开代码 <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> &l ...
- git使用记录二: 给文件重命名的简单方法
git使用记录三: 给文件重命名的简单方法 git mv file_name_old file_name_new mv: 文件命名 file_name_old : 文件当前的名字 file_name_ ...
- PAT甲级【2019年3月考题】——A1157 Anniversary【25】
Zhejiang University is about to celebrate her 122th anniversary in 2019. To prepare for the celebrat ...
- 什么是中间件?中间件和java应用关系是什么
中间件,比如websphere 是一种独立的系统软件,你的java应用要通过它来管理,比如数据库连接,消息通信等,中间件位于操作系统之上.简单滴说,你不可能直接把你的java应用部署在操作系统上,得由 ...