社区讨论

警示后人 70 ~ 80 MLE / 2 TLE 整体二分

P3527[POI 2011] MET-Meteors参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mjnzk4mc
此快照首次捕获于
2025/12/27 15:35
2 个月前
此快照最后确认于
2025/12/29 19:40
2 个月前
查看原帖
在整体二分过程中,将询问分成两部分时,应使用数组节省空间,而不是 vector。
CPP
q1[cnt1++] = q[i];
//q1.push_back(q[i]);
q2[cnt2++] = q[i];
//q2.push_back(q[i]);
并且,cnt1cnt2 应在函数内定义。否则,当往下递归时会被改变。
CPP

Work(ql, ql + cnt1 - 1, vl, mid);//第一次
//若 cnt1 和 cnt2 为全局变量,则 此时 cnt1 和 cnt2 已经被改变,于是第二次时使用的 cnt1 已经不再是原来的 cnt1
Work(ql + cnt1, qr, mid + 1, vr);//第二次
应使用
CPP
void Solve() {
  ...
  int cnt1 = 0, cnt2 = 0;
  ...
}

回复

0 条回复,欢迎继续交流。

正在加载回复...