问题标题: 酷町堂:8160

0
0
已解决
苏绅
苏绅
新手光能
新手光能

题目链接: 酷町堂:8160

  • #include <bits/stdc++.h> using namespace std; int a[10001],n=1,f[10001]; bool ok[10001]; int main() { while(scanf("%d",&a[n])!=EOF) n++; n--; for(int i=1; i<=n; i++) { for(int j=i; j>=1; j--) { if(a[i]<=a[j]) { f[i]=max(f[i],f[j]+1); } } } int mx=0; for(int i=1; i<=n; i++) { //cout<<"### "<<f[i]<<"\n"; mx=max(mx,f[i]); } printf("%d\n",mx); int mn=INT_MAX,ans=0,sum=0; while(1) { sum++; mn=INT_MAX; for(int i=1; i<=n; i++) { if(!ok[i]&&a[i]<=mn) { mn=min(a[i],mn); ok[i]=1; ans++; //cout<<"### "<<a[i]<<" ans="<<ans<<" sum="<<sum<<endl; } } if(ans==n) { printf("%d\n",sum); return 0; } } return 0; }

0
已采纳
薛乘志
薛乘志
初级启示者
初级启示者

你这代码怎么看

0
0
我要回答