【BZOJ1800】【Ahoi2009】fly 飞行棋

来源:互联网 发布:3d出号绝密算法 编辑:程序博客网 时间:2024/06/10 02:01

链接:

#include <stdio.h>int main(){    puts("转载请注明出处[vmurder]谢谢");    puts("网址:blog.csdn.net/vmurder/article/details/44594515");}

题解:

数据范围只有20。暴力乱搞吧。

我的暴力:
枚举每个点n4

这道题应该是可以做到线性的~~

代码:

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 25using namespace std;int n,a[N],sum[N];int ans;int main(){    freopen("test.in","r",stdin);    int i,j,k,l;    scanf("%d",&n);    for(i=1;i<=n;i++)    {        scanf("%d",&a[i]);        sum[i]=sum[i-1]+a[i];    }    for(i=1;i<n;i++)    {        for(j=i+1;j<n;j++)        {            for(k=j+1;k<n;k++)            {                if(sum[k]-sum[i]<(sum[n]>>1))continue;                if(sum[k]-sum[i]>(sum[n]>>1))break;                for(l=k+1;l<=n;l++)                {                    if(sum[l]-sum[j]<(sum[n]>>1))continue;                    if(sum[l]-sum[j]>(sum[n]>>1))break;                    if(sum[j]-sum[i]==sum[l]-sum[k])ans++;                }            }        }    }    printf("%d\n",ans);    return 0;}
0 0
原创粉丝点击