摘要:
最大连续子段和有各种方法,很多的都含着暴力的解法,一维O(n)的解法的也已经很熟悉了~现在复习一下,便于进行拓展最大连续子段和a[]数组存储原序列,dp[i]表示处理完第i个数后(包括第i个数在内)的目前最大连续字串dp[i] = dp[i-1]+a[i],如果dp[i] 2 #include 3 4 int main (){ 5 int a[110][110]; 6 int b[110][110]={0};//第k列前j行 7 int n; 8 int i, j, k; 9 int s , max1, max=0;10 scanf("%d",... 阅读全文
摘要:
最长上升子序列(LIS)最长上升子序列是最基本的dp问题,以前一直都只写过O(n^2)的解法,现在终于有时间整理一下了。把poj上的几道最长上升子序列的水题又重新做了一下,主要有1631、2533、3903方法一:O(n^2)dp[i]:表示处理到第i个位置,序列的最长上升子序列末尾为i的长度; a... 阅读全文
摘要:
题意:一个1~n的序列,分别用'I','D'表示序列的升降,如{1,2,4,3},则是属于IID的情况,而1~4中属于IID情况的可以有很多不同的序列,给出序列的I、D表现形式(‘?’表示‘I’或‘D’都可以),求出满足这样要求的有多少种。例如:Sample InputIIIDDIDD?D?? Sample Output122136HintPermutation {1,2,3} has signature "II".Permutations {1,3,2} and {2,3,1} have signature "ID".P 阅读全文