97mjh1012   3년 전

양방향으로 하려다가 5번 연속 틀리고... 걍 정점 분할로 풀었는데요..ㅠㅠ

단방향 그래프의 경우 dist는 그래프 입력할 때,

d[u][v]=dist;

d[v][u]=-dist

이렇게 전처리를 해두고 mcmf돌리면 잘 돌아가는데요

양방향 그래프를 mcmf돌릴 때는 dist처리를 어떻게 해야하나요..?

유량 같은 경우는 source -> sink를 찾고나서

f[prev[i]][i]+=flow

f[i][prev[i]]-=flow

이렇게 처리를 하면 되는데....

dist처리는 진짜 모르겠습니다 ㅠㅠ

koosaga   3년 전

인접행렬이 아닌 vector를 사용하는 구현에 익숙해 지시는 게 좋을 것 같습니다

97mjh1012   3년 전

각 간선의 정보를 저장하는 Edge 구조체를 만들고

vector<Edge*> graph[1000] 이런 구현을 말씀하시는 건가요...?

97mjh1012   3년 전

진짜 감사하고 또 감사합니다 ㅠㅠㅠ

조언덕에 MCMF, 유량 문제풀면서 들었던 의문점도 해결되고

많은 문제도 풀게되었습니다...... ^_^

댓글을 작성하려면 로그인해야 합니다.