1804 小C的多边形

1804 小C的多边形

基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题

小C偶然发现了一个奇妙的n个点的多边形。现在你需要给外圈的边标记上1~n-1,里圈的边也标记上1~n-1,使得对于一个外圈相邻点与中间点构成的三角形的边权之和都相等。

图中带三角形的三个点构成的三角形的边权都要相等。

你需要输出一种标记方案。(如果不存在就输出0)

Input

一共一行。 第一行,有一个n(4<=n<=1,000,000)。

Output

第一行n-1个数表示顺时针方向外圈的的边权(ai)。 第二行n-1个数表示顺时针方向里圈的的边权(bi)。 并且a1和b1,b2构成第1个三角形,a2和b2,b3构成第2个三角形....,an-1和bn-1,b1构成第n-1个三角形。具体请参看样例!

Input示例

4

Output示例

1 2 3

2 3 1

//简单思维题,找到总和与平均的规律即可

 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 #define MX 1000005
 5
 6 inline void Out(int a) {
 7     if(a<0) {putchar(‘-‘); a=-a;}
 8     if(a>=10) Out(a/10);
 9     putchar(a%10+‘0‘);
10 }
11
12 int A[MX];
13 int B[MX];
14
15 int main()
16 {
17     int n;
18     scanf("%d",&n);
19     if (n%2==1) printf("0");
20     else
21     {
22         for (int i=1;i<=n-1;i++)
23             A[i]=i;
24         B[2]=n-1;
25         int sb=n/2*3;
26         for (int i=3;i<=n-1;i++)
27             B[i]=sb-A[i-1]-B[i-1];
28         B[1]=sb-A[1]-B[2];
29
30         for (int i=1;i<=n-1;i++)
31             Out(A[i]),putchar(‘ ‘);
32         putchar(‘\n‘);
33         for (int i=1;i<=n-1;i++)
34             Out(B[i]),putchar(‘ ‘);
35         putchar(‘\n‘);
36     }
37     return 0;
38 }

时间: 2024-11-07 05:18:05

1804 小C的多边形的相关文章

51nod 1804 小C的多边形(构造)

首先可以算出无解的充分不必要条件,所有边的和为sum=3*((n-1)*n)/2,如果sum%n!=0显然无解. 也就是说n为奇数必然无解.现在考虑n为偶数的情况. 不妨假设n为偶数有解,现在考虑如何将这个解构造出来. 设此时n边形的为2*k+1,那么也就说,内边的每相邻两个边的和要为{k+2....3*k+2} 把边构造成这个样子即可. k+1 1 k+2 2 k+3......2*k+1. 另外这个oj的读入效率真是感人肺腑啊... # include <cstdio> # include

4.30-5.1cf补题

//yy:拒绝转载!!! 悄悄告诉你,做题累了,去打两把斗地主就能恢复了喔~~~ //yy:可是我不会斗地主吖("'▽'") ~~~那就听两遍小苹果嘛~~~ 五一假期除了花时间建模,就抽空把最近没做的CF题补了点..毕竟明天开始又要继续上好多课呐...Yes, I can!(? •_•)?……(I can Huá shuǐ~~) codeforces 803 A. Maximal Binary Matrix   [简单构造] 题意:n行和n列填充零矩阵. 您要将k个1放在其中,使得得到

搜索7--noi1804:小游戏

搜索7--noi1804:小游戏 一.心得 二.题目 1804:小游戏 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 一天早上,你起床的时候想:"我编程序这么牛,为什么不能靠这个赚点小钱呢?"因此你决定编写一个小游戏. 游戏在一个分割成w * h个正方格子的矩形板上进行.如图所示,每个正方格子上可以有一张游戏卡片,当然也可以没有. 当下面的情况满足时,我们认为两个游戏卡片之间有一条路径相连: 路径只包含水平或者竖直的直线段.路径不能穿过别的游

计算机图形学之光栅图形学——多边形的扫描转换之 X-扫描算法及改进

本文是对 赵明老师 <计算机图形学>MOOC课程 部分章节的小总结. 多边形有两种表示方法:顶点表示和点阵表示. X-扫描线算法: 算法步骤概括如下: 注意: 改进: 为了避免求交运算,引进一套特殊的数据结构:

Shading中的插值技术

提要 在Per Vertex shader中处理着色计算的情况计算出的是每个顶点上shading的结果,通常模型都是由三角面来构成,面上的颜色如何处理,就是今天要探讨的.常用的三种方法是Flat Shading, Gouraud Shading, Phong Shading,对于渲染一个小球,结果对比如下,从左到右依次是Flat Shading, Gouraud Shading, Phong Shading. Flat Shading 这个最简单,整个面片的颜色都是一致的,没有平滑,只有很硬的边

互测六 题解 9.18 圆润的多边形&amp;Takuji与信徒

圆润的多边形: 我们可将所求图形划分如下: 绿色部分是一凸多边形,红色部分为若干个长方形,蓝色部分为若干个扇形. 易证:1.蓝色部分的总和是一个半径为r的整圆:2.红色部分的总和=凸多边形周长*r. 那么现在就只剩下如何计算的问题. 1.对于前12.5%数据,r=0且点坐标成顺时针排列,那么直接作为凸多边形来计算即可: 2.对于前50%数据,点坐标成顺时针排列,这个部分分的做法...我也没想出来... 这是为什么呢...因为这个题,是我受了洛谷P1513的启发而脑补出来的,这道题中有"点坐标成顺

【Qt5开发及实例】18、图形修饰小工具

图形修饰小工具 无力吐槽,这是我第三遍写这个了,到底是个什么意思???我只要一贴代码,浏览器直接崩溃,呵呵了,我也是,我现在只要写完一段字我就保存,尼玛在掉我就不写了,写到word里面,再贴上来. 效果 左边图形展示界面 paintarea.h /** * 书本:[Qt5开发及实例] * 功能:实现绘画各种图形 * 文件:paintarea.h * 时间:2015年1月21日16:59:25 * 作者:cutter_point */ #ifndef PAINTAREA_H #define PAI

[WebGL入门]十五,为多边形涂抹颜色(顶点颜色的指定)

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 增加顶点属性的个数 上次,终于绘制了一个三角形,但是只绘制了一个纯白色的多边形.这次,给多边形的顶点中添加颜色属性,基本上做的事情和上一篇文章一样,只是稍微增加点步骤而已.首先,就像以前多次重复的那样,顶点可以包含很多种情报(参考:顶点缓存和基础),而且每一个情报叫做

求任意多边形的面积(转)

原文地址:http://blog.csdn.net/sun_shine_/article/details/18799739 给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做?我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别求面积,最后累加就可以了,把多边形分割为三角形的方式多种多样,在这里,我们按照如下图的方法分割: 图1 S点作为起始点(点1),a->e依次作为点2,3…….一个三角形的面积是怎样的呢