1 条题解

  • 2
    @ 2023-3-4 10:07:14
    #pragma GCC optimize(3,"Ofast","inline")
    #include <bits/stdc++.h>
    using namespace std;
    inline int read()
    {
    	char ch(getchar());
    	int x(0),m(1);
    	while(!isdigit(ch)){
    		if (ch=='-') m=-1;
    		ch=getchar();
    	}
    	while(isdigit(ch)){
    		x=x*10+ch-'0';
    		ch=getchar();
    	}
    	return x*m;
    }
    inline void write(int x)
    {
    	if (x<0) putchar('-'),x=-x;
    	if (x>=10) write(x/10);
    	putchar(x%10+'0');
    }
    long long n,v,k,a[114],mx=-1234567890,b[114][114];
    inline void dfs(long long t,long long s,long long sum){
    	if(sum<=b[t][s]) return ;
    	b[t][s]=sum;
    	if(t==1){
    		mx=max(mx,sum);
    		return ;
    	}
    	for(int i=1;i>-2;i--){
    		if(s+i>=a[t]&&s+i-a[t]<=k) dfs(t-1,s+i,sum+s+i);
    	}
    }
    signed main ()
    {
    	n=read(),v=read(),k=read();
    	for(int i=2;i<=n;i++) a[i]=read();
    	dfs(n-1,v,v);
    	if(mx==-1234567890){
    		puts("YI DING YAO JIAN CHI ZUO URAL");
    		return 0;
    	}
    	double ans=mx*1.0/(n-1);
    	printf("%.2lf",ans);
    	return 0;
    }
    
    • 1

    信息

    ID
    301
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    137
    已通过
    28
    上传者