AccecptTime: | 2009-02-03 22:59:35 |
Language: | G++ |
Memory: | 4100K |
Time: | 1672 ms |
Errors: | 1 wa |
Algorithm: | DP |
呵呵,这题是最大子序列的衍生题,由一维变二维的.
我的做法是用一个二维数组(max)将从第一至当前(第i)行的每一对子序列纪录下来,如i=3时max[2][4]储存的是从1到3行,2到4列中宽度为3的最大子矩阵.(乱...)
做出来的时候发现怎么用了1秒多!google了一下,找到大牛china8848的解题报告.解法精妙而且只用了15ms.仔细比较他的算法时间复杂度也是(o3)啊,于是把他的代码提交了一下.RE.原来是数据改了,我改了一下(对不住了大牛),提交,ac,800ms.我想这应该是因为时间常量的问题.毕竟我用的是二维数组,大牛用的是一维.
这里我没有和大牛比较的意思,只是抱着学习的态度看这些代码.不过我相信很快我就可以用自己的能力写出更好的代码的,呵呵~~
照旧把鄙人的代码贴出来: