您的位置:首页 > 其它

rqnoj-低价购买

2013-11-07 19:28 495 查看
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#define maxlongint 2000000000;
using namespace std;
const int maxn=5000+10;
int n,len[maxn],a[maxn],f[maxn];
int lon,maxlen;

int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) len[i]=1;
for(int i=n-1;i>=1;i--)
{
for(int j=i+1;j<=n;j++)
{
if(a[i]>a[j] && len[j]>=len[i])
len[i]=len[j]+1;
}
}
maxlen=1;
for(int i=1;i<=n;i++) maxlen=max(maxlen,len[i]);
printf("%d ",maxlen);
len[0]=maxlen+1;
a[0]=maxlongint;
for(int i=0;i<=n;i++)
{
if(len[i]==1)
f[i]=1;
else f[i]=0;
}
int j;
for(lon=1;lon<=maxlen;lon++)
{
for(int i=1;i<=n;i++)
{
if(len[i]==lon)
{
j=i-1;
while(j>=0 && a[i]!=a[j])
{
if(a[j]>a[i] && len[j]==lon+1)
{
f[j]+=f[i];
}
j--;
}
}
}
}
cout<<f[0];
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: