45pts求助:不求AC只求60
  • 板块P1638 逛画展
  • 楼主asd890123
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/24 17:33
  • 上次更新2024/4/24 20:28:37
查看原帖
45pts求助:不求AC只求60
1074084
asd890123楼主2024/4/24 17:33
#include <cstdio>
#include <vector>
#include <algorithm>

const int maxn = 1e6 + 5;

bool P(int a[],int k,int l,int r){
    
    int i,len;
    std::vector <int> v;
    
    for (int i = l;i <= r;i++) v.push_back(a[i]);
    std::sort(v.begin(),v.end());
    len = std::unique(v.begin(),v.end()) - v.begin();
    for (i = 0;i < len;i++)
        if (v[i] != i + 1)
            return 0;
    
    return i >= k;
}

int main(){
    
    int x[maxn];
    int n,m,ans = 2147483647,ansa,ansb;
    
    scanf("%d%d",&n,&m);
    for (int i = 1;i <= n;i++) scanf("%d",&x[i]);
    for (int a = 1;a <= n;a++)
        for (int b = a + m - 1;b <= n;b++)
            if (P(x,m,a,b))
                if (b - a + 1 < ans)
                    ans = b - a + 1,ansa = a,ansb = b;
    printf("%d %d\n",ansa,ansb);

    return 0;
}

我知道这不是正解,就是想练练枚举,看下数据范围觉得1e5还有机会#4#5都过了,能帮我卡常过#6么,不需要AC

2024/4/24 17:33
加载中...