The Fourth Dimension Space

枯叶北风寒,忽然年以残,念往昔,语默心酸。二十光阴无一物,韶光贱,寐难安; 不畏形影单,道途阻且慢,哪曲折,如渡飞湍。斩浪劈波酬壮志,同把酒,共言欢! -如梦令

POJ 2619 Delta-wave 激起你思维的火花

这个题居然要用到三维坐标,太神奇了~
这个代码其实我也是借鉴网上牛人写的,感觉写的非常好,略作修改之后就拿过来了;
至于那个坐标公式,还有一小部分没有弄懂,下次可以继续研究下呵;


每个点都可以用三向坐标来表示
最短路径=两点各坐标差的绝对值之和决定的。用三向坐标
表示后,你会发现最短路径总是穿过3种线段,步数=各线段和=坐标差之和.有时侯把图转过几个角度或把元素分分类或掠取几条线都可能有新发现。


以上转自:http://hi.baidu.com/sunshine_0316/blog/item/834b3f39b58f3622b9998f6f.html


#include<iostream>
#include
<cmath>
#include
<cstdio>
#include
<algorithm>
using namespace std;

int main() 

    
int n1,n2; 
    
int i,alevel,aright,aleft,blevel,bright,bleft,steps; 

    scanf(
"%d%d",&n1,&n2);
    alevel
=1
    blevel
=1
    
for(i=1;;i=i+2
    

        
if(n1-i<=0
        

            aright
=(i-n1)/2+1
            aleft
=(n1+1)/2
            
break
        }
 
        alevel
++
        n1
=n1-i; 
    }
 
    
for(i=1;;i=i+2
    

        
if(n2-i<=0
        

            bright
=(i-n2)/2+1
            bleft
=(n2+1)/2
            
break
        }
 
        blevel
++
        n2
=n2-i; 
    }

    steps
=abs(alevel-blevel)+abs(aleft-bleft)+abs(aright-bright);
    printf(
"%d\n",steps); 

    
return 0;
}

posted on 2009-03-07 01:10 abilitytao 阅读(281) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理