1.坐标离散化:获得有几个不同的点&获得点在数组中的位置(为了从1开始计数):
int totalX = unique(keyX.begin(), keyX.end()) - keyX.begin(); p[i].x = lower_bound(keyX.begin(), keyX.begin() + totalX, p[i].x) - keyX.begin() +1; len1 = unique(b + 1, b + 1 + len1) - (b + 1); p[i].x = lower_bound(b + 1, b + 1 + len1, p[i].x) - b;
2.离散化之前要排序
3.之前一边改一边开着标准程序,然后函数的声明就弄混了!传参就错了!
4.减少赋值语句,可以从1800->1400ms。
5.测试数据分布会影响运行速度,HDU6638 枚举X左边界会比枚举Y上边界要快。2700->1800ms,这就很……过分。