1. 程式人生 > >bzoj1800: [Ahoi2009]fly 飛行棋(亂搞)

bzoj1800: [Ahoi2009]fly 飛行棋(亂搞)

style sin bzoj str get ati urn 什麽 bsp

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 }

bzoj1800: [Ahoi2009]fly 飛行棋(亂搞)