AC
狼队.Modest
腾讯工程师
展开
-
P7868 [COCI2015-2016#2] VUDU 题解
首先看到数据范围10^6肯定是O(n)或者一只老哥。考虑把所有数减去P,那么原问题就变成有多少和不小于0的子序列。容易想到前缀和,那么相当于求不逆序对数量。于是用树状数组求解即可。注意判断从11开始的子串,相当于从sum_i-sum_0其中sum表示前缀和。特判或者加入一个0皆可。Code :#include <bits/stdc++.h>#define int long longusing namespace std;inline ...原创 2021-10-10 12:47:44 · 364 阅读 · 2 评论 -
P1003 [NOIP2011 提高组] 铺地毯 题解
本题直接搜索貌似会TLE,于是可以扫每一个给出的方格,查看所查点是否在范围内,不断叠加并记录即可。代码如下:#include <iostream>#include <cstdio>using namespace std;int n,nx,ny,ans=-1;int sx[10001],sy[10001],lx[10001],ly[10001];bool yn(int x,int y,int lx,int ly){ if(nx>=x &&am原创 2021-09-17 12:12:50 · 123 阅读 · 2 评论 -
关于AC自动机的想法....
AC自动机关键点一:字典树的构建过程:字典树的构建过程是这样的,当要插入许多单词的时候,我们要从前往后遍历整个字符串,当我们发现当前要插入的字符其节点再先前已经建成,我们直接去考虑下一个字符即可,当我们发现当前要插入的字符没有再其前一个字符所形成的树下没有自己的节点,我们就要创建一个新节点来表示这个字符,接下往下遍历其他的字符。然后重复上述操作。假设我们有下面的单词,she , he ,say, her, shr ,我们要构建一棵字典树...原创 2021-09-07 12:13:45 · 78 阅读 · 0 评论