p2362围栏木桩
查看原帖
p2362围栏木桩
758242
qiang2013楼主2023/11/26 21:36
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int a[N],n,m;
int dp[N],sum[N];
int main(){
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>n;
		for(int j=1;j<=n;j++){
			cin>>a[j];
			dp[j]=1;
			sum[j]=1;
		}
		for(int j=1;j<=n;j++){
			for(int k=1;k<=j;k++){
				if(a[k]<=a[j]){
					if(dp[j]<dp[k]+1){
						dp[j]=dp[k]+1;
						sum[j]=sum[k];
					}
					else if(dp[j]==dp[k]+1){
						sum[j]+=sum[k];
					}
				}
			}
		}
		int maxx=-1,xb,ans=0;
		for(int j=1;j<=n;j++){
			cout<<dp[j]<<" "; 
			if(dp[j]>maxx){
				maxx=dp[j];
				ans=sum[j]; 
			}
			if(dp[j]==maxx)ans+=sum[j];
		}
		cout<<maxx<<" "<<ans<<endl;
		memset(a,sizeof(a),0);
		memset(dp,sizeof(dp),0);
	}
}

不知道哪错了

2023/11/26 21:36
加载中...