NC19886. [AHOI2009]FLY 飞行棋
描述
输入描述
第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度
输出描述
所构成不重复矩形的个数
示例1
输入:
8 1 2 2 3 1 1 3 3
输出:
3
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 380K, 提交时间: 2020-08-19 12:12:54
#include<bits/stdc++.h> #define maxn 25 using namespace std; int sum[maxn]; int a[maxn]; int main() { int n; scanf("%d",&n); int tot=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i]; } int res=0; for(int a=1;a<=n;a++) for(int b=a+1;b<=n;b++) for(int c=b+1;c<=n;c++) for(int d=c+1;d<=n;d++) { if((sum[b]-sum[a]==sum[d]-sum[c])&&(sum[n]-sum[d]+sum[a]==sum[c]-sum[b])) res++; } cout<<res<<endl; }