题解 P3040 【[USACO12JAN]贝尔分享Bale Share】

· · 题解

给大家看一段非常神奇的代码:

提供一个90分的做法(骗分大法)

void dis()
{
    random_shuffle(a+1,a+1+n);
    int k=0,maxx=0;
    for(int i=1;i<=n/3;++i)
    k+=a[i];
    maxx=k;k=0;
    for(int i=n/3+1;i<=2*n/3;++i)
    k+=a[i];
    maxx=max(maxx,k);k=0;
    for(int i=2*n/3+1;i<=n;++i)
    k+=a[i];
    maxx=max(maxx,k);
    ans=min(ans,maxx);
}
int main()
{
    n=fastRead();
    for(int i=1;i<=n;++i)a[i]=fastRead();
    for(int i=1;i<=1000000;++i)dis();
    printf("%d",ans);
    return 0;
}

对!就这货能拿90分!(第六个点死活过不去)

本来n就很小,我们再随机一下。。。哈哈哈哈哈哈(仰天长啸)