1657번 - 두부장수 장홍준
전 이 문제를 MCMF(Mincost Maxflow) 알고리즘으로 풀었는데 다른 분의 소스를 읽다보니 잘 이해가 안되서 질문드립니다.
kdk8747님의 소스인데...(혹시나 소스 공개가 문제가 된다면 곧바로 글을 지우겠습니다)
가로로 배열하는 부분은 이해가 되는데 세로로 배열하는 부분은 이해가 어렵습니다ㅠㅠ
s 변수를 쉬프트한 값에 ((1<<m)-1))를 & 연산해주면서 현재 속해있는 행에 대한 상태로 작업을 하는데
세로로 배열하는 경우에 한칸 쉬프트하고 1을 더해준 게, 다음 행의 해당 열에 이미 작업을 했다는 걸 어떻게 표시하는건지...음...
혹시 아시는 분은 설명해주시면 대단히 감사하겠습니다!
제가 비트마스크를 할 때마다 대단히 노가다스러운 코드만 짜왔었는데 이번 기회를 통해서 개선하고싶슴다ㅠㅠ
@kdk8747님 어디계세요
(그림)
M번째 비트에 있는건 더 이상 볼 필요가 없기 때문입니당..
아! 해결됬습니다ㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
h0ngjun7 9년 전
전 이 문제를 MCMF(Mincost Maxflow) 알고리즘으로 풀었는데 다른 분의 소스를 읽다보니 잘 이해가 안되서 질문드립니다.
kdk8747님의 소스인데...(혹시나 소스 공개가 문제가 된다면 곧바로 글을 지우겠습니다)
가로로 배열하는 부분은 이해가 되는데 세로로 배열하는 부분은 이해가 어렵습니다ㅠㅠ
s 변수를 쉬프트한 값에 ((1<<m)-1))를 & 연산해주면서 현재 속해있는 행에 대한 상태로 작업을 하는데
세로로 배열하는 경우에 한칸 쉬프트하고 1을 더해준 게, 다음 행의 해당 열에 이미 작업을 했다는 걸 어떻게 표시하는건지...음...
혹시 아시는 분은 설명해주시면 대단히 감사하겠습니다!