给你8个整数:
A,B,C表示平面上的一条线,其方程为Ax + By = C
a,b,c表示另一条线
x,y表示平面上的一个点
这两条直线不是平行的,因此将平面分成4个部分。点(x,y)位于其中一个部分内。
问题:
编写快速算法,找到与给定点(x,y)处于同一块中且最接近两条给定直线交点的整数坐标点。
注意:
这不是作业,而是我完全不知道如何处理的旧Euler类型任务。
更新:
您可以假设输入的8个数字是32位有符号整数。但是您不能假设解决方案将是32位的。
更新2:
困难情况-当线条几乎平行时-是问题的核心
更新3:
问题的作者表示,解决方案是具有线性O(n)算法的。其中n是输入的大小(以位为单位)。即:n = log(A)+ log(B)+ ... + log(y)
但我仍然无法解决它。
请说明已发布算法的复杂度(即使它们是指数级的)。