社区讨论

P1020求调

灌水区参与者 4已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@m0c559ay
此快照首次捕获于
2024/08/27 16:04
2 年前
此快照最后确认于
2025/11/04 22:17
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int a[10001],n=1,f[10001];
bool ok[10001];
int main() {
    while(cin>>a[n])
        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++)
    {
        mx=max(mx,f[i]);
    }
    cout<<mx<<endl;
    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++;
            }
        }
        if(ans==n) {
            cout<<sum;
            return 0;
        }
    }
 
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...