HDU1030 DFS&&规律
2013-11-23 23:08
543 查看
有规律的dfs:
#include<stdio.h> int a1,a2,h1,h2,sss;//较小数在第h1层的第a1的位置,较大数在h2层的第h2的位置 void dfs(int a,int h,int s) { if(h==h2) { sss=a-a2>0?s+a-a2:s+a2-a; return ; } if(a&1) dfs(a+1,h+1,s+1);//底为边,直接往下搜 else if(a2-(h2-h)>a)//底为顶点且相对靠右,往右边搜 dfs(a+1,h,s+1); else//相对靠左,往左边搜 dfs(a-1,h,s+1); } void find(int x,int nn)//找位置 { int s,a,i; for(s=0,a=i=1;;i++,a+=2) { s+=a; if(x<=s&&nn==1) { h1=i; a1=x-(s-a); break; } else if(x<=s&&nn==2) { h2=i; a2=x-(s-a); break; } } } int main () { int a,b,t; while(~scanf("%d%d",&a,&b)) { a>b?t=a,a=b,b=t:a=a; find(a,1); find(b,2); dfs(a1,h1,0); printf("%d\n",sss); } return 0; }
相关文章推荐
- Problem A. Arithmetic Derivative-XVII Open Cup named after E.V. Pankratiev||找规律&数学&DFS
- POJ 2965 The Pilots Brothers' refrigerator(dfs+枚举 || 规律)
- 51nod1307(暴力树剖/二分&dfs/并查集)
- 【割点 && dfs】UVALive - 7456 Least Crucial Node
- SDUT:找朋友 BFS&&DFS
- POJ 2965-The Pilots Brothers' refrigerator(枚举&&DFS&&输出过程)
- ACM学习历程—SNNUOJ1215 矩阵2(二分 && dfs)
- 数据结构18————图的深度优先遍历(DFS)&广度优先遍历(BFS)
- 【POJ】2965 - The Pilots Brothers' refrigerator(dfs & 双端队列 & 思维)
- BZOJ3653——谈笑风生(dfs序 && 树状数组)
- 1021. Deepest Root (25) DFS & (a little idea )
- 【NYOJ】-最少步数(DFS || BFS&&队列)
- 蓝桥杯 兰顿蚂蚁(dfs&&模拟)
- [hdu 5051]2014上海网络赛 Fraction 数学 Benford's law/打表找规律
- 【DFS&BFS】HDU1241-Oil Deposits
- 【容斥定理 && dfs】UESTC 1544 当咸鱼也要按照基本法
- codeforces 560C Gerald's Hexagon(找规律)
- 图的两种遍历:DFS&BFS
- 【PAT 1005 The Largest Generation (25)】& 树 & dfs
- DFS&&codeforce 598d