우리는 n 개의 꼭지점이있는 완전한 그래프를 가지고 있다고 생각하십시오. 각 정점에는 값이 있습니다. 두 꼭지점 i와 j 사이의 엣지의 가중치는 value [i] xor value [j]와 같습니다.
문제는 꼭지점 1에서 꼭지점 n까지 경로의 가장자리가 최대가되는 경로를 찾는 것입니다. 이미 Dijkstra의 알고리즘을 수정했고 O (n^2 lg (n))의 알고리즘을 발견했습니다. 좀 더 효율적인 알고리즘을 찾는 데 도움을 줄 수 있습니까?그래프에서 최소 병목 경로를 찾으십시오.
4
A
답변
1
최소 병목 값은 value[1] XOR value[n]
의 최상위 비트 (M
)로 결정된 수보다 커야합니다. 두 개의 노드 A
및 B
, 노드의 등이 M
높은 비트를 발견하면 1
및 A
평등뿐만 아니라 동일 A
및 B
, 최소 병목 경로 사이의 최소한의 가장자리 무게 노드 n
및 B
의 M
높은 비트입니다 1-ABn이됩니다 (또는 A = 1 및/또는 B = n이면 더 짧을 수도 있음).
최소 에지 가중치 인 A/B
쌍을 선택하려면 노드 1
과 일치하는 상위 비트 (M
이상)를 갖는 모든 노드 값에 대해 이진 트라이를 구성하십시오. 그런 다음 상위 비트가 노드 n
과 일치하는 모든 노드 값에 대해이 값에서이 값을 검색하십시오. 정확히 일치하는 것이 발견되지 않으면 가장 깊은 부분 일치를 선택하십시오.
시간 복잡도는 O (n * M)입니다.
관련 문제
- 1. 그래프에서 '병목 에지'찾기
- 2. 그래프에서 선형성을 찾으십시오.
- 3. 무 방향성 그래프에서 두 노드 사이의 가능한 모든 경로를 찾으십시오.
- 4. PHP에서 최소 int를 찾으십시오.
- 5. 그래프에서 최소 용량이 최대 인 경로 찾기
- 6. 그래프에서 모든 결정 노드 집합을 찾으십시오.
- 7. 최소 제곱 회귀 그래프에서 최소 제곱 회귀 그래프를 그립니다.
- 8. Kruskal의 알고리즘으로 그래프에서 최소 절단을 찾는 것?
- 9. Java : 레지스트리에서 설치 경로를 찾으십시오.
- 10. 레이블로 셀의 인덱스 경로를 찾으십시오.
- 11. 다차원 배열에서 파일 경로를 찾으십시오.
- 12. 이름으로 anglejs routeprovider에서 경로를 찾으십시오.
- 13. 라이브러리에서 호출자 스크립트 경로를 찾으십시오.
- 14. 그래프에서 가장 긴 경로를 찾는 방법은 무엇입니까?
- 15. 그래프에서 깊이가 제한된 경로를 찾는 방법은 무엇입니까?
- 16. 그래프에서 가장 긴 경로를 찾는 방법
- 17. 그래프에서 닫힌 경로를 찾기위한 의사 코드
- 18. 병목 현상이있는 병목 현상이 있습니까?
- 19. 경로를 따라 최소 에지 가중치
- 20. 그래프에서 최단 경로를 찾는 방법과 최소 수의 새 노드를 추가하는 방법은 무엇입니까?
- 21. 모든 꼭지점을 정확히 한 번 연결하는 그래프에서 최소 가중치의 선형 경로를 찾는 알고리즘
- 22. jumbble 게임의 최소 이동 수를 찾으십시오.
- 23. 어셈블리의 평균, 최소 및 최대를 찾으십시오
- 24. 알고리즘 문제 - 최소 공통 부분 집합을 찾으십시오
- 25. 스레드 간의 최소 대기열 크기를 찾으십시오.
- 26. BFS를 사용하여 2 노드 사이의 최단 경로를 찾으십시오.
- 27. 주어진 bipartite 그래프에서 최대 완전 bipartite 서브 그래프를 찾으십시오.
- 28. 동적 프로그래밍 : 100 노드 집합에서 10 개 노드가있는 최소 경로를 찾으십시오
- 29. HTML Canvas 컨텍스트의 현재 경로를 찾으십시오.
- 30. 주어진 거리보다 짧은 모든 대체 경로를 찾으십시오
O (n * log n)을 의미합니까? 또는 O (n^(log n))? – templatetypedef
@templatetypedef 나는 그가 O (n * n * logn)를 의미한다고 생각한다. –