社区讨论

28pts help

P14058 【MX-X21-T3】[IAMOI R5] 两个人的演唱会参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mhj41yjc
此快照首次捕获于
2025/11/03 20:22
4 个月前
此快照最后确认于
2025/11/03 20:22
4 个月前
查看原帖
CPP
#include <iostream>
using namespace std;
int t,n,m,a[30000001];
int nxt(int i){
    if (i<n)return i+1;
    return 1;
}
int bak(int i){
    if (i>1)return i-1;
    return n;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>t;
    while (t--){
        cin>>n>>m;
        int ans=0,vis[30000001]={0};
        for (int i=1;i<=n;i++)cin>>a[i];
        for (int i=1;i<=n;i++){
            if (vis[i]==0){
                ans++;
                //left
                int arr=i,p,mmax=a[i],mmin=a[i];
                while (1){
                    vis[arr]=1;
                    p=bak(arr);
                    if (vis[p]==1)break;
                    mmin=min(mmin,a[p]);
                    mmax=max(mmax,a[p]);
                    if (mmax-mmin>m)break;
                    arr=p;
                }
                //right
                int arr1=i,p1,mmax1=a[i],mmin1=a[i];
                while (1){
                    vis[arr1]=1;
                    p1=nxt(arr1);
                    if (vis[p1]==1)break;
                    mmin1=min(mmin1,a[p1]);
                    mmax1=max(mmax1,a[p1]);
                    if (mmax1-mmin1>m)break;
                    arr1=p1;
                }
            }
        }
        cout<<ans<<'\n';
    }
    return 0;
}
https://www.luogu.com.cn/record/237280634

回复

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

正在加载回复...