From 359d90d37194b456bc58776bfd1b2c022d05b8c7 Mon Sep 17 00:00:00 2001 From: LightWant <32861432+LightWant@users.noreply.github.com> Date: Wed, 14 Feb 2018 00:02:41 +0800 Subject: [PATCH] dp01 Try to use --- dp-01bag.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 dp-01bag.cpp diff --git a/dp-01bag.cpp b/dp-01bag.cpp new file mode 100644 index 0000000..d3e0934 --- /dev/null +++ b/dp-01bag.cpp @@ -0,0 +1,44 @@ +//lisÎÊÌâ +//version 1: n^2 +//dp : d(i) = {1, d(j) + 1} j(all) < i, A[j] < A[i] +#include + +int lis( int [], int ); + +int main() +{ + int A[] = {2,1,5,3,6,4,8,9,7}; + + printf("%d", lis( A, 9 )); + + return 0; +} + +int lis( int A[], int n ) +{ + int len = 1; + int d[n]; + + for( int i = 0; i < n; i++ ) + { + d[i] = 1; + + for( int j = 0; j < i; j++) + if( A[j] <= A[i] && d[j] + 1 > d[i] ) + d[i] = d[j] + 1; + + if( d[i] > len ) + len = d[i]; + } + + return len; +} + +//version 2 : nlog£¨n£© + +#include + +int main() +{ + +}