phoenixxxnl 2015-03-18 17:26
浏览 1185

TSA 范围查询(Range) 超时

代码如下,实在想不出来怎么办了, 求大神支援
#include
#include
using namespace std;

int compare(const void *a, const void *b)
{
int *pa = (int *)a;
int *pb = (int *)b;
return (*pa)-(*pb);
}
int bin_search(int point_array[], int low, int high, int ans)
{
int mid, left = low, right = high;
while(left <= right)
{
mid = left +((right - left) >> 1);
if(point_array[mid] >= ans) right = mid - 1;
else left = mid + 1;
}
return left;

}
int main()
{
int num_point, num_search;
cin>>num_point>>num_search;
int *point_array = new int [num_point];

for(int i = 0; i < num_point ; i++)
{
    cin >> point_array[i];
}
qsort(point_array, num_point, sizeof(int), compare);

int left_bind,right_bind;
for(int i = 0; i < num_search ; i++)
{
    cin >> left_bind >> right_bind;
    if(left_bind >right_bind)
    {
        int temp = left_bind;
        left_bind = right_bind;
        right_bind = temp;
    }
    int find_left = bin_search(point_array, 0, num_point-1, left_bind);
    int find_right = bin_search(point_array, 0, num_point-1, right_bind);

    int ans = find_right - find_left;
    if(point_array[find_right] == right_bind) ans++;
    if(ans <0) ans = 0;
    cout << ans <<endl;

}
return 0;

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Oracle触发器记录修改前后的字段值
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题
    • ¥15 lna设计 源简并电感型共源放大器