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\n");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\n",ans); 28 return 0; 29 }