首页 > 代码库 > Parallel and Perpendicular
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\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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。