bzoj1800: [Ahoi2009]fly 飛行棋(亂搞)
阿新 • • 發佈:2018-01-24
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> 6using 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 飛行棋(亂搞)