上一页 1 2 3 4 5 6 7 ··· 29 下一页
摘要: 快读 参考:算法笔记--快读(输入外挂)模板 基础版本: inline int read(){ int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();} while(ch>='0'&&ch 阅读全文
posted @ 2020-10-12 13:38 caoanda 阅读(153) 评论(0) 推荐(0) 编辑
摘要: Linux系统打包命令和解包命令 zip 命令: 压缩:zip 压缩文件名.zip [需要压缩的文件(可包含文件夹)] 解压:unzip 压缩文件名.zip 删除:zip 压缩文件名.zip -d 要删除的文件 tar 打包(指把文件整合在一起,不压缩): 打包:tar -cf 包名.tar 要打包 阅读全文
posted @ 2020-10-07 13:35 caoanda 阅读(257) 评论(0) 推荐(0) 编辑
摘要: F - Mr. Panda and Fantastic Beasts 参考:[acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Fantastic Beasts 后缀自动机 把2~n的串用一个特殊字符串起来,然后对这个新串建后缀自动 阅读全文
posted @ 2020-10-06 15:13 caoanda 阅读(164) 评论(0) 推荐(0) 编辑
摘要: B - Freebie 期望=\(\sum_{i=1}^{365} 第i天为特殊天的概率\) 把特殊天分为两类,一种是周末和周一,一种是周二三四五。 ① 对于假设把周末和周一合并为一天,也使得这一天在一年中出现的概率为$\frac{3}{365}$。 要求出这一天是特殊天的概率有点复杂,正难则反。于 阅读全文
posted @ 2020-09-28 14:26 caoanda 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 求 n 以内的素数和以及素数个数 复杂度:\(O(n^{\frac{3}{4}})\) // Created by CAD #include <bits/stdc++.h> #define ll long long using namespace std; ll check(ll v,ll n,ll 阅读全文
posted @ 2020-09-24 10:26 caoanda 阅读(637) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机 // Created by CAD #include <bits/stdc++.h> using namespace std; const int maxn=1e6+5; namespace sam{ int len[maxn<<1],link[maxn<<1],Next[maxn<<1 阅读全文
posted @ 2020-09-20 11:29 caoanda 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机做题技巧 ①后缀自动机的总状态数小于$2n$,总转移边数小于$3n$ ②后缀自动机沿着 link 链接跳的总复杂度为$O(n)$,构造后缀自动机的总复杂度也是$O(n)$ 性质: ①插入字符新增子串数:len[p]-len[link[p]] ②后缀链接:link[p]表示的字符串是p的后缀 阅读全文
posted @ 2020-09-19 09:55 caoanda 阅读(151) 评论(0) 推荐(0) 编辑
摘要: SP1811 LCS - Longest Common Substring 用 sam 进行字符串匹配,建 s 的 sam,然后用 t 在 s 的 sam 上进行匹配,匹配过程中,沿着 Next 转移往下走,如果失配,则沿着 link 链接往上跳,因为 link 链接是该节点的后缀,所以这样跳就不会 阅读全文
posted @ 2020-08-19 14:41 caoanda 阅读(120) 评论(0) 推荐(0) 编辑
摘要: P3975 [TJOI2015]弦论 一定要记得初始化! 后缀链接连接的节点所表示的字符串是该节点表示字符串的后缀,先将所有新增节点的dp[i]都置为1(除了拆点),一个节点所表示字符串的出现次数是其子树所有dp值之和(下标不同,本质相同的两个串是不同串) 如果下标不同,本质相同的两个串属于一个串的 阅读全文
posted @ 2020-08-18 11:03 caoanda 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 回文自动机做题技巧 ① 灵活利用维护的各个数据: 节点x len[x]表示该节点表示的字符串的最长长度 fail[x]指向的节点表示的字符串是节点x表示字符串的最长子回文串 cnt[x]在经过以下处理后表示在s中该节点所表示字符串在s中的出现次数 for(int i=sz;i>=0;++i) cnt 阅读全文
posted @ 2020-08-17 09:44 caoanda 阅读(130) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 29 下一页