A: 二叉树结点公共祖先
Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 9 Solved: 5Description
一个顺序存储的完全二叉树:
1
/ \
2 3
/ \ / \
4 5 6 7
...
任意给定两结点的编号,求两结点最近的公共祖先。
Input
每组数据一行,为空格隔开的两个数i和j,皆为32位有符号正整数
Output
每组数据对应一行,为编号为i和j的结点的最近公共祖先的编号
Sample Input
4 5 4 7
Sample Output
2 1
#include<iostream> using namespace std; int main() { int a,b; while(cin>>a>>b) { while(a!=b) { if(a>b) a/=2; else b/=2; } cout<<a<<endl; } return 0; }