zoukankan      html  css  js  c++  java
  • HDOJ 1030 Deltawave

    找规律的题,对每一个数字对应一个三维坐标(X,Y,Z)

    X::表示在第几层
    Y:从左边的边数在第几个
    Z::从右边的边数在第几个

    对倒三角要特殊处理(Z减一)

    如:1(1,1,1)   2(2,2,1)    3(2,1,1)

    距离就是坐标差点绝对值。

     1 #include <iostream>
     2 #include <cmath>
     3 
     4 using namespace std;
     5 
     6 struct Note
     7 {
     8     int x;
     9     int y;
    10     int z;
    11 };
    12 
    13 int main()
    14 {
    15     Note a,b;
    16     int m,n;
    17 while(cin>>m>>n)
    18 {
    19 
    20     int sa=0;
    21     int sb=0;
    22     int k;
    23     int t=ceil(sqrt(m));
    24     a.x=t;
    25     k=(m-(t-1)*(t-1))/2;
    26     a.y=t-k;
    27     k=((2*t-1)-m+(t-1)*(t-1))/2;
    28     a.z=t-k;
    29     if((2*t-1-m+(t-1)*(t-1))%2==0)  sa=1;
    30     if(sa==0) a.z=a.z-1;
    31 
    32     t=ceil(sqrt(n));
    33     b.x=t;
    34     k=(n-(t-1)*(t-1))/2;
    35     b.y=t-k;
    36     k=((2*t-1)-n+(t-1)*(t-1))/2;
    37     b.z=t-k;
    38     if((2*t-1-n+(t-1)*(t-1))%2==0)  sb=1;;
    39     if(sb==0)  b.z=b.z-1;
    40 
    41     //cout<<a.x<<" "<<a.y<<" "<<a.z<<endl;
    42     //cout<<b.x<<" "<<b.y<<" "<<b.z<<endl;
    43 
    44     int ans=0;
    45     ans=abs(a.x-b.x)+abs(a.y-b.y)+abs(a.z-b.z);
    46 
    47     cout<<ans<<endl;
    48 }
    49 
    50 
    51     return 0;
    52 }
  • 相关阅读:
    Node Express4.x 片段视图 partials
    SVG知识难点
    MongoDB的安装和配置成服务的三种方法和一些难点
    git的使用
    单击获取索引的两种方式
    IOTA初识
    开始写博客啦
    虚拟化技术
    可信计算概论
    负载均衡
  • 原文地址:https://www.cnblogs.com/CKboss/p/3014178.html
Copyright © 2011-2022 走看看