摘要:
这个问题有LCA算法但是我还是使用的是递归的解法,后序遍历static bool lca(node *root, int va, int vb, node *&result, node *parent){ int left, right, mid; left = right = mid = 0; //判断左右子树是否有要寻找的节点 if (root->left) left = lca(root->left, va, vb, result, root); if (root->right) right = lca(root->right, va, vb, resul 阅读全文
随笔档案-2011年9月24日
平面上N个点求斜率最大的两个点
2011-09-24 20:01 by chonghui1001, 576 阅读, 收藏,
摘要:
平面上N个点求斜率最大两个点1.根据X将N个点排序2.最大的斜率为max(p[i], p[i+1])可以证明如果有ABC三个点则AB与BC的斜率一个大于AC另一个则小于AC, k3 = (c - b)/(c - a)k2 + (b -a)/(c-a)k1;通过反正法可以证明k3在k1和k2之间p[i], p[i + k]斜率在(p[i ], p[i + 1]) 和(p[i + 1] , p[i + k])之间,然后递归推出最大的斜率为max(p[i], p[i + 1]); 阅读全文
浙公网安备 33010602011771号