[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\n",ans*(ans-1)/2);
return 0;
}
我是咸鱼。转载博客请征得博主同意Orz