![bzoj1800: [Ahoi2009]fly 飞行棋(乱搞) bzoj1800: [Ahoi2009]fly 飞行棋(乱搞)](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
1800: [Ahoi2009]fly 飞行棋
题目:传送门
题解:
大水题,早上签个到
没什么好说的...搞个前缀和,算个周长...
周长为奇数肯定误解啊废话QWQ
那么看到n<=20,还不暴力枚举!!!
然后看一下对角点之间的弧长是不是半周长就好啦(判定定理啊)
然后...一A
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
int n,ans,x,bzc;
int a[];
int main()
{
scanf("%d",&n);
a[]=;ans=;
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
a[i]=a[i-]+a[i];
}
scanf("%d",&x);
a[]=a[n]+x;bzc=a[]/;
if(a[]%==){printf("0\n");return ;}
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
for(int k=j+;k<=n;k++)
for(int y=k+;y<=n;y++)
if(abs(a[k]-a[i])==bzc && abs(a[y]-a[j])==bzc)
ans++;
printf("%d\n",ans);
return ;
}