求大佬!样例与自测全过,但除第一个点全 WA
  • 板块P10455 Genius Acm
  • 楼主rickytk
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/7 19:14
  • 上次更新2024/10/7 21:21:48
查看原帖
求大佬!样例与自测全过,但除第一个点全 WA
560435
rickytk楼主2024/10/7 19:14
#include<iostream>
#include<algorithm>
using namespace std;
int t,res,n,m;
long long k;
long long sum(int l,int r,int arr[]) {
    long long cnt=0;
    sort(arr+l,arr+1+r);
    int i=l,j=r,temp=1;
    while(i<j&&temp<=m) {
        cnt+=(arr[i]-arr[j])*(arr[i]-arr[j]);
        i++,j--,temp++;
    }
    return cnt;
}
inline void work(int ar[]) {
    int l=1,r=1;
    while(l<=n) {
        if(l<n){
            int pp=1;
            while(pp) {
                if(r+pp>n)pp=pp>>1;
                else {
                    if(sum(l,r+pp,ar)<=k) {
                        r+=pp;
                        pp=pp<<1;
                    }
                    else pp=pp>>1;
                }
            }
        }
        res++;
        l=r=r+1;
    }
}
int main() {
    ios::sync_with_stdio(false);
    cin>>t;
    cin.tie(NULL);
    cout.tie(NULL);
    while(t--) {
        res=0;
        register int p[500005];
        cin>>n>>m>>k;
        for(int i=1;i<=n;i++)cin>>p[i];
        if(k)work(p);
        else res=n;
        cout<<res<<endl;
    }
    return 0;
}
2024/10/7 19:14
加载中...