hdu1030 - Delta-wave (三角洲数学水题)

来源:互联网 发布:英语趣配音mac版 编辑:程序博客网 时间:2024/04/30 20:06

三角州浪?  这题目,尴尬。。。。

           继续水体事业,题意:
               三角区域面积,每个小三角区域不能顶点与顶点直接穿过,只能边缘(即边)穿过,求最短距离

           想了一晚上,发现自己还是不适合做数学题啊,看题解吧 ,呜呜

          百度到的思路:
                  这道题主要是分析每类格子的特点,发现格子所在的行数和格子本身的编码有关系,开平方即可。之后就是如果格子编码减去(它的行数-1的平方)如果是奇数则必定往下走,如1、2、4、5、7、9……如果是偶数则只能往左走或往右走。怎么判断往左走还是往右走呢?如果当前位置的正下方的那个与目的地在同一行上的格子:如果在目的地的左边则往右走;如果在目的地的右边则往左走。计算当前位置正下方的那个与目的地在同一行上的格子的方法可以观察出来,即依次加当前行数的2倍。最后就能计算出步数。

                对现在的我来说,做出来是有一定恶心的,幸好理解了,要不然我都有缓缓的冲动。


/*
  我的思路:
       n^2 是该行最右边的值,(n-1)^2 是上行最末尾的值,由此可以得到 M,N在第几行
   n = (int )sqrt(N-1) + 1;  //优化为通用 n为行数
   假定M<N (否则交换)
      找到M值 正下方的格子 并判断是否与N在同一行,否则循环,找到后判断N在 其左 还是右
   假如在右边, 间隔几个三角区域 即为水平距离, 没下一阶层 走两步,其中一步为左右移位
   直到达到N所在层数,计算移位。

*/

 

           另搜到某思路:http://www.cnblogs.com/ACMan/archive/2012/05/30/2526798.html

 

               发现这题果然很水~~

 

 

 

 

0 0
原创粉丝点击