zoukankan      html  css  js  c++  java
  • POJ 1870 Bee Breeding(找规律)

    题目链接

    题意 : 给你一个蜂巢状图形,让你找出两个点之间的距离。

    思路 : 在做这个题之前可以看一下2265,因为是一种题来着,规律就是我在2265里写的那样,然后就是求距离了,求距离的时候只需考虑两个点的坐标差值(x,y),把坐标差值分成四个项限,x>0且y>0,或x<0且y<0为abs(x+y),其他情况则是max(abs(x),abs(y))。。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <cmath>
     5 #include <cstdlib>
     6 
     7 using namespace std ;
     8 
     9 void val(int a,int &x,int &y)
    10 {
    11         int n = 0;
    12         while(3 * (n-1) * n + 1 < a)
    13             n++;
    14         n--;
    15         if(n == -1)
    16         {
    17             x = 0 ;
    18             y = 0 ;
    19             return ;
    20         }
    21         a -= 3*(n-1)*n+1;
    22         if(a<=n)
    23         {
    24             x = n-a;
    25             y = a;
    26         }
    27         else if(a>n&&a<=2*n)
    28         {
    29             x = n-a;
    30             y = n;
    31         }
    32         else if(a>2*n&&a<=3*n)
    33         {
    34             x = -n;
    35             y = 3*n-a;
    36         }
    37         else if(a>3*n&&a<=4*n)
    38         {
    39             x = a-4*n;
    40             y = 3*n-a;
    41         }
    42         else if(a>4*n&&a<=5*n)
    43         {
    44             x = a-4*n;
    45             y = -n;
    46         }
    47         else
    48         {
    49             x = n;
    50             y = a-6*n;
    51         }
    52 }
    53 int main()
    54 {
    55     int a,b ;
    56     while(scanf("%d %d",&a,&b) !=EOF)
    57     {
    58         if(a == 0 && b == 0) break ;
    59         int xa,ya,xb,yb ;
    60         val(a,xa,ya) ;
    61         val(b,xb,yb) ;
    62       //  printf("%d %d %d %d
    ",xa,ya,xb,yb) ;
    63         int ans = 0 ;
    64         if((xa-xb)*(ya-yb) <= 0)
    65             ans = max(abs(xa-xb),abs(ya-yb)) ;
    66         else ans = abs(xa-xb)+abs(ya-yb) ;
    67         printf("The distance between cells %d and %d is %d.
    ",a,b,ans) ;
    68     }
    69     return 0 ;
    70 }
    View Code
  • 相关阅读:
    iOS中block实现的探究
    [ES6] 19. for ... of
    [ES6] 18. Map
    [ES6] 17. Set
    [ES6] 16. Object Enhancements
    [MEAN Stack] First API -- 5. Using $resource to setup REST app
    [AngularJS] Provider
    [MEAN Stack] First API -- 4. Organize app structure
    [AngularJS] ngCloak
    [Angular-Scaled Web] 9. Control your promises with $q
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3920254.html
Copyright © 2011-2022 走看看