这题一直以为是贪心。 每次宿便选一条砍树最多的方向,怎么砍都不会亏吧……
试了大量随即数据,都没找到反例,但是交上去就是WA,百思不得其解
之后上网搜,居然真的找到了反例——
.012..
.3.4..
.567..
8.....
....9A
Optimal solution has 4 lines: 0-7-A, 2-5-8, 3-6-9, 1-4.
Your algorithm under some conditions could initially choose these lines: 0-3-5, 2-4-7; and then it'll need 3 more lines, for a total of 5 lines.
感谢这位mf,这个例子确实不容易想到
之后改走搜索路线
先乱写了个DFS,超时。优化搜索深度:不能超过已找出的最大深度,还是超时
再优化搜索顺序:按从树多到树少的顺序搜,继续超时,再记录走过的状态,终于擦边AC了
然后发现原来的DFS变成DP了……于是就写了记忆化搜索,速度快了一点。
不过搜索顺序对dp的优化效果不明显,因为树的多少毕竟是相对于当前状态来看的……