上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 64 下一页
摘要: "题目" 在$DAG$上跑一个$dp$就好了 设$ans_i$表示到了$SAM$的$i$位置上所有的子串形成的数的和,之后我们顺便记录一个方案数$d_i$ 之后我们直接转移就好了 $$ans_v+=ans_u\times 10+w[u,v]\times d_u$$ $$d_v+=d_u$$ 答案是$ 阅读全文
posted @ 2019-01-05 16:00 asuldb 阅读(127) 评论(0) 推荐(0) 编辑
摘要: "题目" 好题啊 $SAM$+单调队列优化$dp$ 首先这个$L$满足单调性真是非常显然我们可以直接二分 二分之后套一个$dp$就好了 设$dp[i]$表示到达$i$位置熟悉的文章的最大长度 有一个非常显然的$dp$方程 $$dp_i=max\{dp_j+i j\}\ (i j =mid)$$ 同时 阅读全文
posted @ 2019-01-05 15:47 asuldb 阅读(127) 评论(0) 推荐(0) 编辑
摘要: "题目" 来画柿子吧 我们要求的是 $$f(x)\equiv t(mod\ \ p)$$ 其中$f(1)=x_0,f(x)=af(x 1)+b$ 我们来写几项柿子看看 $$f(1)=x_0$$ $$f(2)=ax_0+b$$ $$f(3)=a(ax_0+b)+b=a^2x_0+ab+b$$ $$f( 阅读全文
posted @ 2019-01-05 08:11 asuldb 阅读(218) 评论(0) 推荐(0) 编辑
摘要: "题目" 用一道板子题来复习一下$bsgs$ $bsgs$用于求解形如 $$a^x\equiv b(mod\ p)$$ 这样的高次不定方程 由于费马小定理的存在,我们可是直接暴力扫一遍$p$,由于$p 1$次之后肯定会有循环节出现,所以$O(p)$时间内就可以出解 $bsgs$本质上就是一种分块了 阅读全文
posted @ 2019-01-04 15:25 asuldb 阅读(261) 评论(0) 推荐(0) 编辑
摘要: $SAM$上匹配 我们就是需要找到两个串的最长公共子串 先对其中一个串建出$SAM$,之后我们把另一个串放到上面跑 如果当前在$SAM$的状态是$now$,下一个字符是$c$,匹配出的的长度为$L$ 如果$now$有$c$这个转移,我们就转移过去,$L$++ 如果没有我们就跳$link$,知道跳到有 阅读全文
posted @ 2019-01-03 21:32 asuldb 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 好题啊 $SA+ST\text{表}+\text{莫队}$ 我们先强行把所有的串连起来,串与串之间插入特殊字符,姓和名之间也插入特殊字符 之后跑一遍$SA$,求出$sa$和$het$ 对于所有的询问串,我们标记好他们的开头,之后我们对于排好序的后缀建一个$st$表,找到每个询问串往左往右最多可以扩展 阅读全文
posted @ 2019-01-03 16:34 asuldb 阅读(182) 评论(3) 推荐(0) 编辑
摘要: 拆点 把每个点拆成入口和出口两个点 以下几种连边方式就行了 1. 对于有蜥蜴的点,$S$向入口连1的边 1. 对于能出去的点,出口向汇点连容量为$inf$的边 1. 每个点的入口和出口连容量为高度的边 1. 之后能相互到达的点,出口向入口连容量为$inf$的边 代码 阅读全文
posted @ 2019-01-03 12:47 asuldb 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 据说是网络流棋盘模型了 我们把每一个连续子段都看成一个点,我们先把所有的行上的连续子段找出来给他们编上号,所有列上的连续子段找出来也编上号 现在每个格子都有两个编号了,$a[i][j]$表示行所对应的连续子段的编号,$b[i][j]$表示列所对应的连续子段的编号 之后我们就需要把这些子段匹配起来就可 阅读全文
posted @ 2019-01-02 21:19 asuldb 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 好题啊 先考虑一些如何判掉无解的情况 我们开一个桶,存一下每个编号有多少个人必须选,之后做一个后缀和,之后我们扫一遍,如果一旦有一个后缀和$pre[i]$超过$n i+1$就不合法了,因为我们在$[i,n]$这里要安排的人已经超过$n i+1$也就是这个区间的容纳范围了,所以这样放下去肯定会导致超掉 阅读全文
posted @ 2019-01-02 19:41 asuldb 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 发现这个数列的范围特别大但是值域的范围特别小 于是可以大胆猜测这道题值域肯定需要开到状态里去 又发现$262144=2^{18}$这个暗示非常明显啊,暗示这道题跟二进制有关系 其实也没什么关系 设$dp[i][j]$表示从$i$位置开始合并,合并出$j$这个数所合并的区间的尾位置在哪里 之后就会发现 阅读全文
posted @ 2019-01-02 12:24 asuldb 阅读(187) 评论(0) 推荐(0) 编辑
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 64 下一页