【51Nod】1804 小C的多边形
来源:互联网 发布:js md5 sha1 消耗时间 编辑:程序博客网 时间:2024/05/17 16:44
题意
小C偶然发现了一个奇妙的n个点的多边形。现在你需要给外圈的边标记上1~n-1,里圈的边也标记上1~n-1,使得对于一个外圈相邻点与中间点构成的三角形的边权之和都相等。
解题思路
以五边形为例
根据题意,我们可以得到
1+a+b=2+b+c –> a=1+c
2+b+c=3+c+d –> b=1+d
3+c+d=4+d+e –> c=1+e
4+d+e=5+e+a –> d=1+a
也就是b->d->a->c->e(5->4->3->2->1)
可以发现顺时针方向,b值取最大,从b开始,相隔一条线的值差为1,即,第k条线的值为x,则第(k+2)%n条线的值为x+1,即a[k]=a[(k+2)%n]+1。
所以,n个点的多边行,n必须为偶数。
参考代码
#include <iostream>using namespace std;int a[1000000+1];int main(){ int n; while (cin>>n){ n--; if (n%2==0){ cout<<0<<endl; continue; } int k=1,num=n; while (1){ a[k]=num--; if (k==n-1) break; k=(k+2)%n; } for (int i=0;i<n-1;i++) cout<<i+1<<" "; cout<<n<<endl; for (int i=0;i<n-1;i++) cout<<a[i]<<" "; cout<<a[n-1]<<endl; } return 0;}
0 0
- 【51Nod】1804 小C的多边形
- 51Nod-1804-小C的多边形
- 51nod 1804 小C的多边形
- 51nod 1804 小C的多边形
- 51nod 1804 小C的多边形(规律)
- 51nod 1804 小C的多边形(贪心)
- 51 nod 1804 小C的多边形(贪心)
- 51nod小c的多边形(找规律(构造))
- 小C的多边形
- 51Nod 1831 小C的游戏
- 51Nod-1831-小C的游戏
- 51nod 1831 小C的游戏
- 51nod-1831 小C的游戏
- 51nod 欢乐手速场C 开心的小Q
- [51Nod 1816] 小C的二分图 口胡
- 【51nod 1816】 小C的二分图 口胡题解
- 51nod 1456:小K的技术
- [51nod 1471]小S的兴趣
- JSP 笔记 —— EL 表达式语言
- 日常练习
- 朴素贝叶斯
- java中讲讲URL的用法,举例?
- python xgboost 调参
- 【51Nod】1804 小C的多边形
- 欲登高而穷目,勿筑台于浮沙!
- 脱壳中FSG壳的分析和脱壳后附加代码的分析
- Linux连接文件ln
- 单片机==简易智能家居OLED
- PHP设计模式系列(十五):迭代器模式
- 搜索练习12/poj/problem3126 Prime Path/ bfs
- Zabbix 基础与进阶(1) —— zabbix组件部署
- Fragment使用详解