码迷,mamicode.com
首页 > 其他好文 > 详细

Parallel and Perpendicular

时间:2014-08-12 10:22:13      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:acm

题目链接

  • 题意:
    输入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\n", 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;
}


Parallel and Perpendicular,布布扣,bubuko.com

Parallel and Perpendicular

标签:acm

原文地址:http://blog.csdn.net/wty__/article/details/38510923

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!