摘要: 题目链接枚举A和B中每一段含有C的段,A的前面 后面和B前面后面,求最长公共子序。观察发现,可以预处理最长公共子序。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp1[1001][1001],dp2[1001][1001]; 8 char s1[1010]; 9 char s2[1010]; 10 char s3[1010]; 11 char s4[1010]; 12 char s5[1010]; 13 int que1[1010][3]; ... 阅读全文
posted @ 2013-08-15 18:28 Naix_x 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 如果不在最长路的边,那么肯定是w*最长路。如果在最长路,那么把最长路分成两段,左边树的最长路就是左段+左边点的次短路(不包含最长路上的点的最长路) ,右边同理。还有就是更新,经过左端点的最长路,不一定是整颗左边树的最长路,乱搞一下就可以了。我是搞成一条链,写的很麻烦。。从一点搞到了快四点。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define INF 1000000 9 struct node 10 { 11 i... 阅读全文
posted @ 2013-08-15 18:23 Naix_x 阅读(384) 评论(0) 推荐(0) 编辑