- USACO4.3.1 逢低吸纳
ll好像没什么差别
- 2025-3-12 14:43:24 @
对比几组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
- 上传者