📄 term.c
字号:
#include "wmatch.h"/* updates numerical bounds for linking paths. *//* called with LAST_D set to the bound on DELTA for the next search */void SET_BOUNDS () { int del; for (v=1; v <= U; ++v) { if (LINK[v] < 0 || BASE[v] != v) { NEXT_D[v] = LAST_D; continue; } LINK[v] = -LINK[v]; i = v; while (i != DUMMYVERTEX) { Y[i] -= DELTA; i = NEXTVTX[i]; } f = MATE[v]; if (f != DUMMYEDGE) { i = BEND(f); del = SLACK(f); while (i != DUMMYVERTEX) { Y[i] -= del; i = NEXTVTX[i]; } } NEXT_D[v] = LAST_D; }}/* undoes all blossoms to get the final matching */void UNPAIR_ALL (){ int u; for (v=1; v <= U; ++v) { if (BASE[v] != v || LASTVTX[v] == v) continue; nextu = v; NEXTVTX[LASTVTX[nextu]] = DUMMYVERTEX; while (1) { u = nextu; nextu = NEXTVTX[nextu]; UNLINK (u); if (LASTVTX[u] != u) { f = (LASTEDGE[2] == OPPEDGE(e)) ? LASTEDGE[1] : LASTEDGE[2]; NEXTVTX[LASTVTX[BEND(f)]] = u; } newbase = BMATE (BMATE(u)); if (newbase != DUMMYVERTEX && newbase != u) { LINK[u] = -DUMMYEDGE; REMATCH (newbase, MATE[u]); } while (LASTVTX[nextu] == nextu && nextu != DUMMYVERTEX) nextu = NEXTVTX[nextu]; if (LASTVTX[nextu] == nextu && nextu == DUMMYVERTEX) break; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -