1800: [Ahoi2009]fly 飞行棋
Posted xiyuedong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1800: [Ahoi2009]fly 飞行棋相关的知识,希望对你有一定的参考价值。
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 int sum[50],n,ans; 5 int main() 6 { 7 scanf("%d",&n); 8 for(int i=1;i<=n;i++) 9 scanf("%d",&sum[i]); 10 for(int i=2;i<=n;i++) 11 sum[i]+=sum[i-1]; 12 for(int i=n+1;i<=2*n;i++) 13 sum[i]=sum[n]+sum[i-n]; 14 for(int i=1;i<=n;i++) 15 for(int j=i+1;j<n+i;j++) 16 for(int k=j+1;k<n+i;k++) 17 for(int l=k+1;l<n+i;l++) 18 if(sum[j]-sum[i]==sum[l]-sum[k]&&sum[k]-sum[j]==sum[n+i]-sum[l]) 19 ans++; 20 printf("%d\n",ans/4); 21 return 0; 22 }
n很小 直接四重循环枚举,看弧长是否相等,弧长相等弦长相等,两组边互相相等的四边形是平行四边形,圆内接平行四边形一定是矩形。
以上是关于1800: [Ahoi2009]fly 飞行棋的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ 1800: [Ahoi2009]fly 飞行棋思维题,n^4大暴力