求助,样例输出5,10pts
查看原帖
求助,样例输出5,10pts
661913
liwenxi1145144444楼主2023/8/24 11:12
#include<bits/stdc++.h>
using namespace std;
int n,a[205],dp[205];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=2;i<=n;i++){
		dp[i]=1e9;
	}
	for(int i=2;i<=n;i++){
		if(a[i]-a[i-1]<=1){
			dp[i]=dp[i-1]+1;
		}
		for(int j=2;j<i;j++){
			for(int k=1;k<j;k++){
				if(1<<(j-k)+a[k]>=a[i]){
					dp[i]=min(dp[i],dp[j]+(j-k)+1);
				}
			}
		}
	}
	if(dp[n]>=1e9){
		cout<<-1;
	}else{
		cout<<dp[n];
	}
	return 0;
}
2023/8/24 11:12
加载中...