zoukankan      html  css  js  c++  java
  • 51 Nod 1804 小C的多边形

                                 1804 小C的多边形
    小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

    思路:一道找规律的题目,
       强调一下 这个是一个多边形 平面多边形 不是立体的!!!
       题意 就是给你n个点 组成一个n-1个点的多边形 剩下的一个点 放在多边形的中间
       要求给多边形的边赋上一个权值 再给n-1个点与 中间的点连线产生的边赋一个值 使得所有构成的三角形的quanzhizhihe相同
       

       如图中的五边形

       我们有如下等式

       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+e+d==5+a+e --> d==1+a

       我们可以得出 关于 a,b,c,d,e 的关系 :  b>d>a>c>e 

       观察可以得到 这是隔一条线段 加一次的 照着规律写就可以了

       ps:友情提示! 

       这道题他卡输入!! 0(n) 做法会超时!!

       要写 化!!!

    不过有个dalao cout竟然没有被卡!! 链接:http://blog.csdn.net/jinbaosite/article/details/71056174

     1 #include <cstdio>
     2 
     3 using namespace std;
     4 
     5 const int MAXN=1000010;
     6 
     7 int n,a[MAXN];
     8 
     9 void print(int x){
    10     if(x>=10) print(x/10);
    11     putchar(x%10+'0');
    12 }  
    13 
    14 int hh() {
    15     scanf("%d",&n);
    16     if(n&1) printf("0
    ");
    17     else {
    18         --n;
    19         int s=n,k=1;
    20         while(1) {
    21             a[k]=s,--s;
    22             if(k==n-1) break;
    23             k+=2;
    24             if(k>=n) k-=n;
    25         }
    26         for(int i=1; i<=n; ++i) print(i),putchar(' ');
    27         printf("
    ");
    28         for(int i=0; i<n; ++i) print(a[i]),putchar(' ');
    29     }
    30     
    31     return 0;
    32 }
    33 
    34 int sb=hh();
    35 int main(int argc,char**argv) {;}
    代码  
  • 相关阅读:
    一些数论公式
    一位ACMer过来人的心得
    hdu 2069 Coin Change (母函数)
    关于 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干证明
    upper_bound()与lower_bound()使用方法
    POJ 计算几何入门题目推荐
    图像识别C++读取bmp位图入门
    Centos7 上安装FastDFS
    java的IO包类分层结构
    ==和equels
  • 原文地址:https://www.cnblogs.com/whistle13326/p/7731656.html
Copyright © 2011-2022 走看看