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 飞行棋

1800: [Ahoi2009]fly 飞行棋

1800: [Ahoi2009]fly 飞行棋

BZOJ 1800: [Ahoi2009]fly 飞行棋思维题,n^4大暴力

BZOJ_1800_[Ahoi2009]fly 飞行棋_乱搞

bzoj1800: [Ahoi2009]fly 飞行棋