zoukankan      html  css  js  c++  java
  • Parallel and Perpendicular

    题目链接

    • 题意:
      输入n,求正n边形中的对角线1和对角线2的个数(对角线1:至少与其它一个对角线平行;对角线2:至少与其它一个对角线垂直)。对角线不能是多边形的边
      (4 ≤ n ≤ 10e5)
    • 分析:
      思路题。无论是几边形,两个平行边中间所夹的两側的边数必须是同样的。也就是说两个端点朝着一个方向移动若干个短点后能够得到还有一条平行边。

      也就是说,多边形的每一条边都存在平行便(6边形的时候有一点特殊情况单独处理)
      垂直比較麻烦:对于n是偶数的情况,能够得到,每一个点的n-3条边都是对角线2(n为偶数的时候,随意一条对角线一定将原图形分成左右两个对称的图形)。n为奇数时候,没有对角线2(仅仅能是推測)

    int a[2][110];
    int main()
    {
        int n;
        a[0][4] = 0;
        a[0][5] = 0;
        a[0][6] = 6;
        a[1][4] = 2;
        a[1][5] = 0;
        a[1][6] = 9;
        while (~RI(n))
        {
            if (n <= 6)
            {
                printf("%d %d
    ", a[0][n], a[1][n]);
            }
            else
            {
                cout << 1LL * (n - 3) * n / 2 << ' ';
                if (n & 1) cout << 0 << endl;
                else cout << 1LL * (n - 3) * n / 2 << endl;
            }
        }
        return 0;
    }


  • 相关阅读:
    Linux RAID部署
    系统运维架构师体系
    Linux系统上文件的特殊权限及文件acl
    Linux磁盘使用及文件系统管理
    中小规模网站架构组成
    优化配置模板主机
    网络原理基础
    MySQL二进制安装
    网络通讯基础
    点击改变背景
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7117184.html
Copyright © 2011-2022 走看看