TopCoder 2428
萌新第二道TC(第一道是水题)!先水个题解再说。 TC题目页面传送门 给定 \(n\times m\) 字符矩阵 \(a\) 表示一个花园,每个字符有以下可能: 为 \(\texttt R\) ,表示你初始站在这个位置。保证这样的位置唯一; 为 \(\texttt W\) ,表示水井。保证这样的位置唯一; 为一个数字 \(x\) ,表示当前位置有花,且需水量为 \(x\) 。保证 \(x\in[1,5]\) ,最多有 \(4\) 个这样的位置; 为 \(\texttt.\) ,表示空地。 给定一个最大载水量 \(lim\) 。你初始有 \(0\) 滴水,你可以走到水井旁边(四连通处)打水,或走到花旁边浇水。每向一个四连通的格子走需要 \(1\mathrm s\) ,每打/浇一滴水需要 \(1\mathrm s\) ,水井处和花处不能走。求浇完所有花所需要的时间,或报告无解。 \(n,m\in[1,50],lim\in[1,5]\) 。 TC的题就是这样,数据范围老是小的一批,但还真就不简单。 不难想到DP。设 \(dp_{i,j,k_0,k_1,k_2,k_3}\) 表示目前在位置 \(i\) ,载了 \(j\) 滴水,第 \(x\) 朵花还需要 \(k_x\) 滴水所需要的最小时间。转移也很容易想,在 \(i\) 上,可以向四连通的四个格子转移;在 \(j\) 上