本文主要是介绍poj1952 BUY LOW, BUY LOWER,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
求不重复个数好难#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[5005],f[5005],count[5005];
int main(){int n;int i,j;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){count[i]=1;f[i]=1;}for(i=0;i<n;i++)scanf("%d",&a[i]);int maxi=-1;for(i=0;i<n;i++){for(j=i-1;j>=0;j--){if(a[j]>a[i]){if(f[j]+1>f[i]){f[i]=f[j]+1;count[i]=count[j];}else if(f[j]+1==f[i])count[i]+=count[j];}else{if(a[j]==a[i]){if(f[i]==1)count[i]=0;break;}}}if(f[i]>maxi)maxi=f[i];}int maxcount=0;for(i=0;i<n;i++)if(f[i]==maxi)maxcount+=count[i];printf("%d %d\n",maxi,maxcount);}return 0;
}
这篇关于poj1952 BUY LOW, BUY LOWER的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!