[BZOJ1800][Ahoi2009]fly 飞行棋

前置知识:同弧所对的圆周角=圆心角的一半,矩形的四个内角是直角
由此找到所有的直径排列组合一下即可。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,sum,a[25],ans;
int main() {
  scanf("%d",&n);
  for(int i=1;i<=n;i++) scanf("%d",&a[i]),sum+=a[i],a[i]+=a[i-1];
  if(sum&1) {puts("0");return 0;}
  for(int i=1;i<=n;i++)
    for(int j=i+1;j<=n;j++)
      if(a[j]-a[i]==(sum>>1)) ans++;
  printf("%d
",ans*(ans-1)/2);
  return 0;
}
我是咸鱼。转载博客请征得博主同意Orz
原文地址:https://www.cnblogs.com/sdfzhsz/p/9369923.html