CodeDay @ 2023-10-30 14:05:44
建议检查代码中有没有出现未定义行为,如:
//主函数外
struct Edge{
int to, nxt;
int Cap, flow;
Edge(const int &u = 0, const int &v = 0, const int &flw = 0):to(v),Cap(flw)
{
nxt = head[u], flow = 0;
head[u] = tot;
}
}E[M<<1];
int tot = 1;
//主函数内
E[++tot] = Edge(u, v, w);
E[++tot] = Edge(v, u, 0);
可以改成:
++tot;
E[tot] = Edge(u, v, w);
++tot;
E[tot] = Edge(v, u, 0);
原因:
程序先计算等号右边的值再赋给左边,导致WA/TLE
但在本地没有这样的问题,怎么会事呢
by hopelessness @ 2023-10-30 14:11:57
@CodeDay 因为爱情
by hopelessness @ 2023-10-30 14:16:15
警钟撅烂
by Mikefeng @ 2023-10-30 14:41:28
关于等号两边优先级未定义这件事。
by Eznibuil @ 2023-10-30 14:53:11
这边建议 C++17。