
矩阵乘法
GEOTCBRL
?????
展开
-
【 Codeforces 514E 】Darth Vader and Tree - DP 矩乘转移
题面比较文艺。 大意:给一棵树,这个树有无限个节点。对于每个点,都有n个儿子,第i个儿子与这个点的距离为did_i。问这棵树有多少个点离根的距离不超过x。 首先可以列出一个DP:f[i]=∑nj=1f[i−dj]f[i]=\sum_{j=1}^n f[i-d_j],边界是f[0]=1f[0]=1。 似乎不是那么好做。但是注意到,di<=100d_i<=100,这意味着DP可以简化一下,原创 2015-12-22 22:21:26 · 1259 阅读 · 0 评论 -
【 bzoj 1444 】 [Jsoi2009]有趣的游戏 - AC自动机+矩阵乘法
假设现在建好了一个AC自动机,那么接受一个串相当于从根节点走到单词节点。对应到这道题上,每走一步是有权值的(概率),就相当于无向图一样。这样只要把邻接矩阵建出来然后自乘一定次数就可以了。 因为精度要求不太高,所以自乘个63次就完全够了233333#include <bits/stdc++.h> #define rep(i,a,b) for (int i = a , _ = b ; i <= _原创 2016-02-16 18:11:53 · 1273 阅读 · 0 评论 -
【 bzoj 2553 】 [BeiJing2011]禁忌 - AC自动机+矩阵乘法
将自动机建出来之后就可以得到一个转移矩阵,在没有两个串不能重叠的条件下直接跑矩乘就可以了。但是现在有这个条件,我们就新加一个点表示转移到的单词节点会转移到这里面去,然后这个点连出的边只有自己且边权为1。还要注意的是,一个节点的fail点是单词节点的话那么这个点也要标记成单词节点(终态),因为他是禁位,也要转移到那个新点。#include <bits/stdc++.h> #define rep(i,a原创 2016-02-16 22:46:37 · 1260 阅读 · 0 评论 -
TopCoder SRM 701 div1. 900 FibonacciStringSum - 矩阵乘法
初赛大原题!(雾 稍微推一推就可以得到要算的式子是 ∑k(n+1−kk)kb(n−k)a\sum_{k} \binom{n+1-k}{k}k^b (n-k)^a 可以用二项式定理展开,得到 ∑i(ai)ni(−1)a−i∑k(n+1−kk)kb+a−i\sum_{i}\binom{a}{i}n^i(-1)^{a-i}\sum_k\binom{n+1-k}{k}k^{b+a-i原创 2016-11-03 21:22:19 · 823 阅读 · 0 评论