对比几组AC代码

#include<bits/stdc++.h>
using namespace std;
double n,d,m,a[5005],b[5005],c[5005];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){cin>>a[i];b[i]=1;}
	for(int i=1;i<=n;i++){
		for(int j=1;j<i;j++){
			if(a[i]<a[j])b[i]=max(b[i],b[j]+1);
		}
		for(int j=1;j<i;j++){
			if(a[i]<a[j]&&b[i]==b[j]+1)c[i]+=c[j];
			else if(a[i]==a[j]&&b[i]==b[j])c[j]=0;
		}
		c[i]=max(c[i],1ll*1.0);
		d=max(d,b[i]);
	}
	cout<<d<<" ";
	for(int i=1;i<=n;i++){
		if(b[i]==d)m+=c[i];}printf("%.0lf",m);
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
double n,d,m,a[5005],b[5005],c[5005],e=1.0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){cin>>a[i];b[i]=1;}
	for(int i=1;i<=n;i++){
		for(int j=1;j<i;j++){
			if(a[i]<a[j])b[i]=max(b[i],b[j]+1);
		}
		for(int j=1;j<i;j++){
			if(a[i]<a[j]&&b[i]==b[j]+1)c[i]+=c[j];
			else if(a[i]==a[j]&&b[i]==b[j])c[j]=0;
		}
		c[i]=max(c[i],e);
		d=max(d,b[i]);
	}
	cout<<d<<" ";
	for(int i=1;i<=n;i++){
		if(b[i]==d)m+=c[i];}printf("%.0lf",m);
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
double n,d,m,a[5005],b[5005],c[5005];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){cin>>a[i];b[i]=1;}
	for(int i=1;i<=n;i++){
		for(int j=1;j<i;j++){
			if(a[i]<a[j])b[i]=max(b[i],b[j]+1);
		}
		for(int j=1;j<i;j++){
			if(a[i]<a[j]&&b[i]==b[j]+1)c[i]+=c[j];
			else if(a[i]==a[j]&&b[i]==b[j])c[j]=0;
		}
		c[i]=max(c[i],1.0);
		d=max(d,b[i]);
	}
	cout<<d<<" ";
	for(int i=1;i<=n;i++){
		if(b[i]==d)m+=c[i];}printf("%.0lf",m);
	return 0;
}

0 条评论

目前还没有评论...

信息

ID
72
时间
1000ms
内存
256MiB
难度
8
标签
递交数
82
已通过
13
上传者