社区讨论

疑似错误解法通过

P10961划分大理石参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@mhjaukvn
此快照首次捕获于
2025/11/03 23:33
4 个月前
此快照最后确认于
2025/11/03 23:33
4 个月前
查看原帖
二进制分组:
CPP
for (int u = 1; u <= 6; u++) {
  for (int i = 0; 1 << i <= a[u]; i++) {
    w[++n] = u * (1 << i);
    a[u] -= 1 << i;
  }
}
这么写是有正确性问题的,经 cout 大法检验这样分组是不正确的,但输出正确且过了
改成:
CPP
for (int u = 1; u <= 6; u++) {
  int i = 1;
  while (i < a[u]) {
    w[++n] = u * i;
    a[u] -= i;
    i <<= 1;
  }
  w[++n] = a[u] * u;
}
虽然是对的,但它通过了。

回复

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

正在加载回复...