1 条题解
-
0
抄的洛谷大神的,有入能看懂吗?#include <bits/stdc++.h> using namespace std; int n,a[5001],len[5001]; long double dp[5100]; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++){ len[i]=1,dp[i]=1; for(int j=0;j<i;j++){ if(a[i]<a[j]) { if(len[i]==len[j]+1) dp[i]+=dp[j]; else if(len[i]<len[j]+ 1) len[i]=len[j]+1,dp[i]=dp[j]; } else if(a[i]==a[j]) dp[j]=0; } } int ans=0;long double cnt=0; for(int i=0;i<n;i++){ if(len[i]>ans) ans=len[i],cnt=dp[i]; else if(len[i]==ans) cnt+=dp[i]; } cout<<fixed<<setprecision(0)<<ans<<" "<<cnt; return 0; }
信息
- ID
- 72
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 82
- 已通过
- 13
- 上传者