1 #include <iostream>//abcdab bcdb 2 #include <bits/stdc++.h> 3 using namespace std; 4 int main(){ 5 char x[105],y[105]; 6 cin>>x>>y; 7 int n,m; 8 n=strlen(x); 9 m=strlen(y); 10 int dp[106][106]={0}; 11 for(int i=1;i<=n;i++){ 12 for(int j=1;j<=m;j++){ 13 if(x[i]==y[j]) 14 dp[i][j]=dp[i-1][j-1]+1; 15 else 16 dp[i][j]=max(dp[i][j-1],dp[i-1][j]); 17 } 18 } 19 cout<<dp[n][m]<<endl; 20 }
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int i,j,dp[1010],n,a[1010],ans=0; 5 cin>>n; 6 for(i=1;i<=n;i++){ 7 scanf("%d",&a[i]); 8 dp[i]=1; 9 } 10 for(i=1;i<=n;i++){ 11 for(j=1;j<i;j++){ 12 if(a[i]>a[j]) 13 dp[i]=max(dp[i],dp[j]+1); 14 } 15 ans=max(ans,dp[i]); 16 } 17 cout<<ans<<endl;//输出的不是dp[n],我草了 5 5 6 7 1 2 18 }