草庐IT

12.割地取田

先梳理这道题的过程:尝试这个矩阵的所有可行取法,然后选择其中sum最大的一种。这道题应该属于回溯法的范畴,我使用了一个递归函数search,这个search本质上是一种dfs方法。首先需要两个数组:vl[8][8](vl表示value,存放每个田地的预期产出)和av[8][8](av表示available,存放判断每个田地能否选择的数字,若为0则表示可以访问,若不为0则表示不能访问)这里的size是8*8的原因是,我希望按照元素行列数(从1开始)而不是下标进行表示(从0开始),所以相比6,横竖都多留了一圈。遍历逻辑:有一个当前访问位置(r,c),意为(row,column),这个位置从[1][