摘要:
貌似是个傻×题啊.......由于贪心地想要刷双,结果被空间卡了半个小时。这个题是问字符串S每一位的最短识别子串是多长(识别子串指包含这个字符且只出现在S中一次的子串)。为了想这个题,我对着SAM的图YY了一天。终于,我发现,从后缀树的角度考虑是比较简单的。因为SAM是一棵逆序的后缀树,那么每一位i的前缀(除了包含在别的前缀里面)所对应的节点一定是后缀树里的叶子节点。那么我们只要找到它的父亲节点,然后它的父亲节点对应的子串填上一位字符就是一个识别子串。然后我们就求出了每一位往前最短的识别子串的长度(比这个长度长的一定是识别子串)。然后,我们看:其中L~R是最短识别字串1~L-1段,可 阅读全文
摘要:
算是正式开始接触期望DP了吧,以前在NOIP之前TY比赛里做过一些,基本上都是根据初中的概率知识乱搞的,但事实上这种期望概率动规题还是可以很难的。这个题是看论文上的题解,算是比较基础的期望dp了吧。首先需要预处理一些东西:way[i][j]表示聪聪在i可可在j点时聪聪会走到哪个点,t[i]表示i点的度,next[i][j]表示和i点相连的第j个点是谁(就是可可在i点时可以走到的点的集合,这个集合的大小是t[i])。其中way[i][j]我是枚举顶点dfs的。然后就是一个方程了:f[i][j]=f[way[way[i][j]][j],j](可可不动)+Σf[way[way[i][j]][j],n 阅读全文
摘要:
首先如果没做过维护序列这个题的可以先去做一下,对标记有个初步理解,题解在这里。看到了一道LCT练手题,于是果断刷了,这个题主要恶心在传标记上,别的都是基本的LCT操作。那么我就说一下传标吧。链接一个博客Kanari's World这里面讲的不错,下面我只说说我的体会。我习惯把所有的标记在一个过程里下传,下传顺序一般是旋转,覆盖,加减,注意如果有覆盖的话,连同加减都要一起清掉。然后我下传一般只写在splay的开头,就是先上溯找到根,然后递归地把标记一个一个传下来,事实证明这样做和在旋转的时候一个一个down下来是一样的。然后是标记法则,这个很重要!一定要规定一个严格的标记法则,就是什么优 阅读全文