18分,大佬求看

P1108 低价购买

```c #include<cstdio> #include<iostream> using namespace std; int paper[5005],opt[5005],max,pr[5005],max1=0,best,num[5005]; int main() { int N,i,j,tot=0; scanf("%d",&N); for(i=1;i<=N;i++) scanf("%d",&paper[i]); for(i=1;i<=N;i++) { for(j=i-1;j>=1;j--) { if(paper[j]>paper[i]) { if(opt[j]>opt[best]) best=j; } } pr[i]=best; for(j=i-1;j>=1;j--) { if(opt[j]==opt[best]) num[i]++; } opt[i]=opt[pr[i]]+1; if(opt[i]>max1)max1=opt[i]; best=0; } for(i=1;i<=N;i++) { if(opt[i]==max1)tot+=num[i]; } printf("%d %d",max1,tot); } ```
by Citus_Neru_index @ 2018-10-04 10:58:57


什么题
by emmmmmmmmm @ 2018-10-04 11:23:56


P1108
by Citus_Neru_index @ 2018-10-04 14:09:14


@[emmmmmmmmm](/space/show?uid=87572)
by Citus_Neru_index @ 2018-10-04 14:09:38


没有去重,opt数组相同且数值相同的下标i的num值要赋一个0
by danefishhh @ 2019-07-24 15:04:13


@[Accelerator_zhang](/space/show?uid=93356)
by danefishhh @ 2019-07-24 15:05:51


@[danefishhh](/space/show?uid=54673) 谢谢了,我调下看看
by Citus_Neru_index @ 2019-07-25 11:26:15


|