Explorar o código

最长上升子序列--动态规划--O(N^2)

jal %!s(int64=5) %!d(string=hai) anos
pai
achega
323a93ddf1
Modificáronse 1 ficheiros con 24 adicións e 0 borrados
  1. 24 0
      B.cpp

+ 24 - 0
B.cpp

@@ -0,0 +1,24 @@
+#include<bits/stdc++.h>
+using namespace std;
+int main(){
+	int n;
+	while(cin >> n){
+	int v[n+1];
+	for(int i = 1; i <= n; i++){
+		cin >> v[i];
+	} 
+	int dp[n+1];
+	for(int i = 0; i <= n; i++){
+		dp[i] = 1;
+	}
+	for(int i = 1; i <= n; i++){
+		for(int j = 1; j < i; j++){
+			if(v[j] >= v[i])
+				dp[i] = max(dp[i], dp[j]+1);
+		}
+	}
+	sort(dp+1, dp+n+1);
+	cout << dp[n] << endl;
+}
+return 0;
+}