求 hack
查看原帖
求 hack
947153
ZHR100102楼主2024/12/6 23:39

这题把 dp 上界设成 1e6 就过了,但设成 ld+1l-d+1 就 WA on #5,#6,#7,求 hack。

错误代码如下:

#include <bits/stdc++.h>
#define fi first
#define se second
#define lc (p<<1)
#define rc ((p<<1)|1)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pi;
const int N=1000005;
int n,l,d;
double dpy[N],dpx[N],fx[N],fy[N];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    scanf("%d%d%d",&n,&l,&d);
    dpy[0]=1;
    for(int i=0;i<=l-1+d;i++)
    {
        if(i!=0)fy[i]+=fy[i-1];
        dpy[i]+=fy[i];
        double ad=dpy[i]/d;
        if(i<l)
        {
            fy[i+1]+=ad;
            fy[i+d+1]-=ad;
            dpy[i]=0;
        }
    }
    for(int i=1;i<=l-1+d;i++)dpy[i]+=dpy[i-1];
    double suf=0;
    for(int i=n;i>=0;i--)
    {
        suf+=dpx[i+1]/d;
        suf-=dpx[i+d+1]/d;
        double stp=1-dpy[n];
        if(i-1>=0)stp+=dpy[i-1];
        dpx[i]=max(suf,stp);
    }
    printf("%.15lf",dpx[0]);
    return 0;
}
2024/12/6 23:39
加载中...