摘要:
BZOJ_2580 可以先将字典树建出来并补成trie图,然后就可以用f[i][j]表示第i步走到第j个节点的时一共生成了多少个串,至于走到一个节点时会新增多少个串可以预处理出来,这样在trie图上进行dp即可。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXD 310#define MAXK 1010#define inf 0xc3c3c3c3int N, K, next[MAXD][3], num[MAXD], e, f[MAXK][MAXD], q[MAXD], P[MA 阅读全文
posted @ 2012-10-04 19:21
Staginner
阅读(451)
评论(0)
推荐(0)
摘要:
BZOJ_2591 由于K比较小,我们可以用f[i][j]表示距离第i个节点为j的所有节点的权值和,那么最后实际上就是对于特定的i输出sum{f[i][j]}。 对于一个特定的f[i][j]来讲,一共由两部分构成,一部分路径来自于子节点,一部分路径来自于父节点,我们可以先从叶子节点开始向上dp,将来自于子节点的部分计算出来,再从根节点开始向下dp,将来自于父节点的部分累加上。#include<stdio.h>#include<string.h>#define MAXD 100010#define MAXM 200010int N, K, first[MAXD], e, 阅读全文
posted @ 2012-10-04 17:08
Staginner
阅读(382)
评论(0)
推荐(0)
浙公网安备 33010602011771号