l链接这题想了好一会呢。。刚开始想错了,以为用自动机预处理出k长度可以包含的合法的数的个数,然后再数位dp一下就行了,写到一半发现不对,还要处理当前走的时候是不是为合法的,这一点无法移到trie树上去判断。之后想到应该在trie树上进行数位dp,走到第i个节点且长度为j的状态是确定的,所以可以根据t...
分类:
其他好文 时间:
2014-05-25 16:12:11
阅读次数:
208
//简单.... 1 #include 2 #include 3 #include 4
using namespace std; 5 6 #define maxn 105 7 8 struct t 9 {10 int s;11 int e;12
};13 14 t T[maxn]...
分类:
其他好文 时间:
2014-05-25 16:04:07
阅读次数:
215
链接解码之后是跟普通的自动机求解一下的,只不过解码比较恶心,512=》N》=0
,所以不能用字符串来存,需要转换成整数来做。 1 #include 2 #include 3 #include 4 #include 5 #include 6
#include 7 #include 8...
分类:
其他好文 时间:
2014-05-25 16:03:04
阅读次数:
275
链接预处理出来任意两点的距离,然后可以顺着trie树中的节点走,不能走到不合法的地方,另开一维表示走到了哪里,依次来更新。注意判断一下起点是不是合法。 1
#include 2 #include 3 #include 4 #include 5 #include 6 #include ...
分类:
其他好文 时间:
2014-05-25 12:14:33
阅读次数:
223
链接这个题把病毒分为了两种,一种包含可以覆盖,另一种不可以,需要分别求出包含他们的个数,可以把两种都建在一颗tire树上,在最后求得时候判断一下当前节点是属于哪种字符串,如果是不包含的需要判断一下pre[i]+len[i]
2 #include 3 #include 4 #include 5...
分类:
其他好文 时间:
2014-05-25 11:45:36
阅读次数:
263
链接dp[i][j]表示长度为i在节点J的时候的权值最大值,根据trie树转移一下就行,需要每次都取最小的,所以需要另开一数组保存字典序最小的状态。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7...
分类:
其他好文 时间:
2014-05-25 11:42:29
阅读次数:
268
链接从开始节点往下走,不能走到病毒节点,如果当前状态与原始串不一样就+1,取一个最小值. 1
#include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8
#include 9 #incl...
分类:
其他好文 时间:
2014-05-25 11:41:29
阅读次数:
270
链接dp[x][y][node][sta]
表示走到在x,y位置node节点时状态为sta的方法数,因为只有2个病毒串,这时候的状态只有4种,根据可走的方向转移一下。这题输入的是m、N,先列后行,因为输反了,WA了N次啊。。
1 #include 2 #include 3 #include ...
分类:
其他好文 时间:
2014-05-25 11:37:30
阅读次数:
297
链接这个题把病毒分为了两种,一种包含可以覆盖,另一种不可以,需要分别求出包含他们的个数,可以把两种都建在一颗tire树上,在最后求得时候判断一下当前节点是属于哪种字符串,如果是不包含的需要判断一下pre[i]+len[i]
2 #include 3 #include 4 #include 5...
分类:
其他好文 时间:
2014-05-25 11:32:18
阅读次数:
266
链接当时是因为没有做出来这道题才开了自动机的专题,现在看看还是比较简单的。因为每个病毒串只算一次,只有10个病毒串,可以状压一下哪些状态是可以达到的,最后取一个最大值。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #...
分类:
其他好文 时间:
2014-05-25 11:30:13
阅读次数:
303