E题:
给定整型数阵,求从左上角到右下角的路径(只能往下或右走)最大权值和(包含起终点),以及拥有最大权值和的路径数量。
我的思路:
DP,定义 Fi,j 为走到点 (i,j) 的最大权值和;定义 Fi,j′ 为走到点 (i,j) 拥有最大权值和的路径数量。
状态转移:
Fi,j=max(Fi−1,j,Fi,j−1)+ai,j
Fi,1′=F1,j′=1
Fi,j′=(Fi−1,j==Fi,j−1)?(Fi−1,j′+Fi,j−1′):(Fi−1,j>Fi,j−1?Fi−1,j′:Fi,j−1′)
求HACK,做来做去只有80pts。
F题:
给定一棵树,边有红黑二色(用 0,1 表示),边的长度相等,求长度为 n 的序列 k,满足:
- ki 是树中的一个点。
- 从 k1 出发,每次走 ki 和 ki+1 之间的最短路径,走完序列中所有元素表示的点,且路径中至少经过一条黑边。
要求算出所有长度为 n 的序列 k 总数。
求大佬提供思路,我根本不会。