简单动态规划,却只有20分,样例都过不去,求助!
  • 板块P1799 数列
  • 楼主WaltVBAlston
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/8/18 10:30
  • 上次更新2023/11/4 10:14:31
查看原帖
简单动态规划,却只有20分,样例都过不去,求助!
261262
WaltVBAlston楼主2021/8/18 10:30

RT,代码感觉没有大问题,关键注释已经写了,求大佬调!

#include <iostream>

using namespace std;

int n , a[1005] , dp[1005][1005] , ans=0 ; 

// dp[i][j]表示的是数列第i位放的是原数组的j位的数组 

int main () {
	cin >> n ;
	
	for ( int i = 1 ; i <= n ; i++ ) 
		cin >> a[i] ;
		
	dp[0][0] = 0 ;
	
	for ( int i = 1 ; i <= n ; i++ )
		for ( int j = 1; j <= n ; j++ ) {
			if( a[j] == i)
				dp[i][j] = max ( dp[i][j], max(dp[i][j-1], dp[i-1][j-1] + 1 ) ) ;
			else
				dp[i][j] = max ( dp[i][j], dp[i][j-1] ) ;
			
			ans = max ( ans, dp[i][j] ) ;
		}
	
	cout << ans ;
	
	return 0 ;
}
2021/8/18 10:30
加载中...