在原网站可以,在这里就UKE
查看原帖
在原网站可以,在这里就UKE
536337
eb0ycn楼主2023/9/23 18:52

rt


#include <bits/stdc++.h>
using namespace std;
#define ll long long
int t,n,a[200000],pre,tong[400003],k,ans;//离散化,最多400002
int main()
{
    scanf("%d",&t);
    while(t--)
    {
        memset(tong,0,sizeof(tong));
        ans=0;
        scanf("%d",&n);
        for(int i=0;i<n;++i)
        {
            scanf("%d",&a[i]);
        }
        sort(a,a+n);
        pre=a[0];
        k=1;
        for(int i=0;i<n;++i)
        {
            if(a[i]==pre)++tong[k];
            else
            {
                if(a[i]-pre==1)
                {
                    ++k;
                    ++tong[k];
                }
                else
                {
                    k+=2;
                    ++tong[k];
                }
                pre=a[i];
            }
        }
        for(int i=1;i<=k;++i)
        {
            if(tong[i+1]<tong[i])ans+=tong[i]-tong[i+1];
        }
        printf("%d\n",ans);
    }
    return 0;
}
2023/9/23 18:52
加载中...