Codeforces 250D D. Building Bridge 两点之间直线最短,相似三角形求出在A上的点,二分查找最接近这点的点,B河岸上扫一遍求出最小距离时分别对应A,B河岸上的点,复杂度O(mlogN)