zoukankan      html  css  js  c++  java
  • BZOJ 1800: [Ahoi2009]fly 飞行棋

    Description

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

    Input

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

    Output

    所构成不重复矩形的个数

    Sample Input

    8
    1
    2
    2
    3
    1
    1
    3
    3


    Sample Output

    3

    HINT

    N<= 20

     
    没有好办法
    看到N<=20 
    无奈 暴力出奇迹 
    枚举四个顶点 i,j,k,l
    i,j距离=k,l距离 && j,k距离=i,l距离 ans++
    #include <cstdio>
    #define N 205
    int n,f,ans,a[N],dis[N];
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;++i) scanf("%d",&a[i]),dis[i]=dis[i-1]+a[i-1];
        for(int i=1;i<=n;++i)
         for(int j=i+1;j<=n;++j)
          for(int k=j+1;k<=n;++k)
           for(int l=k+1;l<=n;++l)
            if(dis[j]-dis[i]==dis[l]-dis[k]&&dis[k]-dis[j]==dis[n]+a[n]-(dis[l]-dis[i])) ans++;
        printf("%d
    ",ans);
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    Windows下使用nmake编译C/C++的makefile
    poj 1228
    poj 1039
    poj 1410
    poj 3304
    poj 1113
    poj 2074
    uva 1423 LA 4255
    poj 1584
    poj 3277
  • 原文地址:https://www.cnblogs.com/ruojisun/p/7568372.html
Copyright © 2011-2022 走看看