zoukankan      html  css  js  c++  java
  • 圆里有几个矩形——http://www.zybbs.org/JudgeOnline/problem.php?id=1800

    escription

    给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列。 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形。

    Input

    第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度

    Output

    所构成不重复矩形的个数
     
    思路:
    由于是一个圆,所以要用到类似循环的数组,将原来的数组增加n-1
    如n=4延长到
    1 2 3 4 1 2 3
    即可达到循环效果
    枚举即可
    View Code
    #include<stdio.h>

    int a[99];

    int main()
    {
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
    int all=0,shu=0;
    for(i=1;i<=n;i++)
    {
    scanf("%d",&a[i]);
    all+=a[i];
    }



    for(i=1;i<n;i++)
    {
    a[n+i]=a[i];
    }

    int n3=2*n-3,k,x;
    for(i=2;i<=n3;i++)
    {
    for(j=0;j<=n-4;j++)
    {
    int temp=0;
    for(k=i;k<=i+j;k++){
    temp+=a[k];
    }

    if(2*temp>=all) continue;

    int ll=0;
    for(k=1; (i-k)>=1;k++)//ll左边的
    {
    ll+=a[i-k];
    if(2*ll>(all-2*temp))break;

    if(2*ll!=(all-2*temp))continue;

    int rr=0;//右边
    for(x=1;(i+j+x)<n;x++)
    {
    rr+=a[i+j+x];
    if(rr>ll)break;
    if(rr==ll)
    {
    shu++;
    }
    }
    }
    }
    }

    printf("%d\n",shu);
    }
    }
  • 相关阅读:
    LeetCode(1): 两数之和
    LeetCode(2): 两数相加
    目标检测
    图像语义分割
    Python的图像库
    Caffe
    Layers Of Caffe
    Solver Of Caffe
    ORA-01144_表空间数据文件超出最大限制
    ORA-01654_TableSpace空间不足问题处理
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2230824.html
Copyright © 2011-2022 走看看