// 二分模板 // 查找左边界: while(l < r) { int mid = l + r >> 1; if(...) r = mid; else l = mid + 1; } // 查找右边界 while(l < r) { int mid = l + r + 1 >> 1; if(...) r = mid - 1; else l = mid; } // 其中...根据问题的二段性确定