bzoj1800: [Ahoi2009]fly 飞行棋(乱搞)

1800: [Ahoi2009]fly 飞行棋

题目:传送门

题解:

   大水题,早上签个到

   没什么好说的...搞个前缀和,算个周长...

   周长为奇数肯定误解啊废话QWQ 

   那么看到n<=20,还不暴力枚举!!!

   然后看一下对角点之间的弧长是不是半周长就好啦(判定定理啊)

   然后...一A

代码:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cstdlib>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 int n,ans,x,bzc;
 8 int a[55];
 9 int main()
10 {
11     scanf("%d",&n);
12     a[1]=0;ans=0;
13     for(int i=2;i<=n;i++)
14     {
15         scanf("%d",&a[i]);
16         a[i]=a[i-1]+a[i];
17     }
18     scanf("%d",&x);
19     a[1]=a[n]+x;bzc=a[1]/2;
20     if(a[1]%2==1){printf("0
");return 0;}
21     for(int i=1;i<=n;i++)
22         for(int j=i+1;j<=n;j++)
23             for(int k=j+1;k<=n;k++)
24                 for(int y=k+1;y<=n;y++)
25                     if(abs(a[k]-a[i])==bzc && abs(a[y]-a[j])==bzc)
26                         ans++;
27     printf("%d
",ans);
28     return 0;
29 }
原文地址:https://www.cnblogs.com/CHerish_OI/p/8340011.html