70分求调
查看原帖
70分求调
377194
ziansheng楼主2023/6/6 20:20
#include <bits/stdc++.h>
using namespace std;
long long n,a[5010],f[5010],w;
double num[5010],sum;
int main() {
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    a[0]=2147483647,num[0]=1;
    for(int i=1;i<=n;i++) {
        for (int j=0;j<i;j++) 
            if(a[i]<a[j] && f[j]+1>f[i])
                f[i] = f[j] + 1, num[i] = num[j];
            else if(a[i]<a[j] && f[j]+1==f[i])
                num[i]+=num[j];
        for (int j=0;j<i;j++)
            if(a[j]==a[i] && f[j]==f[i])
                num[j]=0;
    }
    for(int i=1;i<=n;i++)
        if(f[i]>f[w])
            w=i;
    for (int i=1;i<=n;i++)
        if(f[i]==f[w])
            sum+=num[i];
    cout<<f[w]<<" "<<sum;
    return 0;
}
2023/6/6 20:20
加载中...