社区讨论

警示后人 如果 WA 28 on #5 #10 #11

P2472[SCOI2007] 蜥蜴参与者 1已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m2daafkj
此快照首次捕获于
2024/10/17 20:35
去年
此快照最后确认于
2025/11/04 16:58
4 个月前
查看原帖
注意判断能否跳出,并连接超级汇点时的条件
我原本这样写是错的
C
if (i - d < 1 || i + d > r || j - d < 1 || j + d > c) {
    ADD(zip(i, j) + addition, S + 1, inf);
}
应当是以下两种之一或是等价的表达
C
if (i - d < 1 || i + d > r || j - d < 1 || j + d > c) {
    ADD(zip(i, j) + addition, S + 1, inf);
}

if (std::min(std::min(i - 1, j - 1), std::min(r - i, c - j)) < d) {
    ADD(zip(i, j) + addition, S + 1, inf);
}

回复

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

正在加载回复...