WA12pts求hack
查看原帖
WA12pts求hack
351679
shaun2000楼主2024/8/29 09:23
#include<bits/stdc++.h>

using namespace std;
int cnt[100005];
int f[100005][2];
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
    {
        int tmp;
        scanf("%d",&tmp);
        cnt[tmp]++;
    }

    for(int i=1;i<=100003;i++)
    {
        if(cnt[i]==0)
        {
            f[i][1]=max(f[i-1][0],f[i-1][1]);
            f[i][0]=f[i][1];
        }
        else
        {
            f[i][0]=max(f[i-1][0],f[i-1][1]);
            if(k!=0 && k!=1)
            {
                int tmp=max(0,i-k);
                int tmp2=max(0,i-2*k);
                f[i][1]=max(f[i][0]-cnt[tmp]+cnt[i],f[tmp2][1]+cnt[i]);
            }
            else if(k==0 )
                f[i][1]=f[i][0]+1;
            else
            {
                f[i][1]=max(f[i-2][0],f[i-2][1])+cnt[i];
            }
        }
    }
//    for(int i=1;i<=5;i++)
//        printf("%d %d\n",f[i][0],f[i][1]);
    printf("%d",max(f[100000][1],f[100000][0]));



}
2024/8/29 09:23
加载中...