20pts求调(必互关)
查看原帖
20pts求调(必互关)
1381257
zhengyi0402楼主2025/2/5 09:39
#include<bits/stdc++.h>
#define int long double
#define inf 0x3f3f3f3f3f3f3f3f
#define atn 222222
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
int a[5555],dp[5555],sum[5555];
signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	long n;cin>>n; 
	for(long i = 1;i <= n;++i){
		cin>>a[i];
	}
	int ans1=0;
	for(long i = 1;i <= n;++i){
		dp[i]=1;
		for(long j = 1;j < i;++j){
			if(a[i]<a[j]){
				dp[i]=max(dp[i],dp[j]+1);
			}
		}ans1=max(ans1,dp[i]);
		for(long j = 1;j < i;++j){
			if(dp[i]==dp[j]&&a[i]==a[j]){
				sum[j]=0;
			}else if(dp[i]==dp[j]+1&&a[i]<a[j]){
				sum[i]+=sum[j];
			}if(!sum[i])sum[i]=1;
		}
	}
	int ans2 = 0;
	for(long i = 1;i <= n;++i){
		if(dp[i]==ans1)ans2+=dp[i];
	}
	cout<<fixed<<setprecision(0)<<ans1<<' '<<ans2<<endl;
	return 0;
	//十年OI一场空,define int 见祖宗。
	//十年OI一场空,不开long long见祖宗。
}

我也不知道哪出问题了,球求大佬帮我找一下错吧TOT!

2025/2/5 09:39
加载中...