23840번 - 두 단계 최단 경로 4
기존 외판원 문제와 같이
[노드번호][bit] 형태로 2차원 배열을 선언하기엔 p의 범위가 20까지고, n의 범위가 100000까지라 너무 크더군요..
각 노드와 그때 bit에 대해 최소 거리를 저장할 수 있는 방법중에서 더 효율적으로 저장할 수 있는 방법이 무엇이 있을까요?
p개의 정점들에 대해 각각 다익스트라를 돌려서 p*p 배열에 값을 넣고 각각 시작 지점과 끝 지점으로 가는 비용만 저장하면 기존 외판원 문제와 비슷해지고 나머지 n개의 정점을 생각할 필요가 없어요
그런 아이디어가 있었군요..!
시작, 중간, 끝 지점들을 모두 포인트로 저장해 시작에서 끝까지 모든 정점을 한번씩 탐색하는 경우로 생각해서 문제를 풀었습니다.
근데 자꾸 81퍼센트에서 WA가 뜨네요.. 변수형도 잘 맞춘 것 같은데 뭐가 문제일까요ㅠㅠ..
제출해보니까 자료형 문제네요.
다익스트라를 돌릴때 int 범위를 벗어나서 그래요. 우선순위 큐 선언을 pii대신 pair<long long,int>넣으시고 int weight 대신 long long weight으로 하면 AC받아요
아 그렇군요!!!!!
바보같은 실수를 하고 있었네요..
또 하나 배워갑니다
정말 감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
tjdahr25 2년 전
기존 외판원 문제와 같이
[노드번호][bit] 형태로 2차원 배열을 선언하기엔 p의 범위가 20까지고, n의 범위가 100000까지라 너무 크더군요..
각 노드와 그때 bit에 대해 최소 거리를 저장할 수 있는 방법중에서 더 효율적으로 저장할 수 있는 방법이 무엇이 있을까요?