보물 찾기 도로

문제의 의미의 번역

제목 설명 농부 존은 카리브해 소에 항해 보트를 운전했다.

해양 N 번호 1 N (1≤N≤100) 섬이있다. 존 출발 1 위의 섬, 그리고 마지막 숫자 N 섬.

보물지도는 섬을 통해 자신의 여행 중 하나 나타나면 말한다 아이, A2, ..., (2≤M≤10000) 등의 순서 (반드시 인접하지 않은), 그는 결국 옛 찾을 수있을 것 AM 보물. 그러나, 가축 이후 카리브해는 해적 만연되어있다. 요한은 해적이 출몰하는 두 섬 사이의 노선에의 가능성, 그는 위험 지수 DIJ (0≤Dij≤100000)가 기술되어 사용되는 것을 알고 있었다. 최소 그는 위험 지수의 경로를 통해 자신의 보물 찾기를 원했다. 그래서 보물을 찾을 수있는 전제하에, 최소 위험 지수는 얼마입니까?

입력 포맷 입력 및 출력 형식 : 첫번째 라인 : 공간 분리 된 두 개의 양의 정수 N과 M

제 M + 1 : 광고 나 + 1 행해야 FJ 정수 각각 A1, i 번째 섬을 나타내고

첫 번째 행 + M + 1 N의 M + 2 : 난 처음에 난 섬 섬의 수를 나타내는 N 음이 아닌 정수를 포함하는 구역으로 분리 된 행의 M + 1 ... N 각 경로를 + 위험 지수. 0 보장 i 번째이다.

첫 번째 출력 형식의 라인 : 최소 FJ의 위험 지수는 경로의 보물을 찾기 위해 전제하에 통과시켰다.

1 개 섬의 섬 제 2 백 섬 1 호, 마지막 3 개 제도 : 설명이 데이터 세트는 보물지도 네 섬 FJ 통해 순차적 필요 세 섬을 갖는다. 이들 5,2,1 리스크 지표이다 경로 (1,2), (2,3), (3,1) 및 역방향 경로 각 행 인덱스는 위험을 준다.

FJ는 보물을 얻기 위해 7의 총 수 1,3,2,3,1,3 위험 지수를 최소화하기 위해 섬을 통해 확장 할 수 있습니다. 이 로드맵은 소 (1,2,1,3)의 요구 사항을 충족합니다. 너무 큰 위험 지수이기 때문에 우리는 제 1 및 제 2 섬 사이의 길을 피할 수 있습니다.

참고 :의 테스트 데이터를 B B 위험 지수로하는 것은 위험 지수에 반드시 동일하지 않습니다!

@ LJC00125에 ​​의해 번역

제목 설명

농부 요한은 N 중 하나 편리 Cowribbean 바다에 1..N을 표시 (1 <= N <= 100)의 섬에 전설적인 보물을 찾는 보트에 있습니다.

보물지도는 그가 A_2, ..., M의 A_M (2 <= M <= 10,000) 섬, 섬 1 일에 시작하여 보물 섬에 N 전에 끝나는 것은으로 나타납니다, 특정 시퀀스 A_1을 통과해야 그에게 말한다 그를. 그는 순서가 이들과 다른 섬을 방문 번 더, 그러나 그의 여행은지도에 의해 지정된 순서로 A_I 순서를 포함해야 할 수 있습니다.

FJ는 해적을 피하기 위해 원하고 섬의 각 쌍 사이의 해적 위험 평가 (0 <= 위험 <= 100,000)를 알고있다. 그의 임무의 총 위험 평가는 그가 통과하는 모든 경로의 위험 등급의 합이다.

농부 요한이 보물지도의 요구 사항을 만족 보물에 가장 위험한 경로를 찾을 수 있습니다.

농부 존은 카리브해 소에 항해 보트를 운전했다.

해양 N 번호 1 N (1≤N≤100) 섬이있다. 존 출발 1 위의 섬, 그리고 마지막 숫자 N 섬.

보물지도는 섬을 통해 자신의 여행 중 하나 나타나면 말한다 아이, A2, ..., (2≤M≤10000) 등의 순서 (반드시 인접하지 않은), 그는 결국 옛 찾을 수있을 것 AM 보물. 그러나, 가축 이후 카리브해는 해적 만연되어있다. 요한은 해적이 출몰하는 두 섬 사이의 노선에의 가능성, 그는 위험 지수 DIJ (0≤Dij≤100000)가 기술되어 사용되는 것을 알고 있었다. 최소 그는 위험 지수의 경로를 통해 자신의 보물 찾기를 원했다. 그래서 보물을 찾을 수있는 전제하에, 최소 위험 지수는 얼마입니까?

입력 및 출력 형식

입력 형식 :

 

* 선 1 개의 공간 분리 된 정수 N과 M

* 라인 2..M + 1 : 라인 전 1 FJ는 하나의 정수로 방문해야 i_th 섬을 설명 + : A_I를

* 라인 M + 2..N + M + 1 : 광고 나 M + 1 섬 사이의 경로 I 및 섬 1, 2, ..., 및 N의 각각의 위험 평가되어 N 공간 분리 된 정수를 포함 + 각기. i 번째 정수는 항상 0입니다.

 

출력 형식 :

 

* 1 호선 : 보물을 획득하면서 농부 존 발생할 수 있다는 최소한의 위험이 있습니다.

 

샘플 입출력

입력 샘플 # 1 :  복사
3 4 
1 
2 
1 
3 
0 5 1 
5 0 2 
1 2 0
출력 샘플 # 1 :  복사
(7) 

설명

이 세 섬이 있고 보물지도를 위해 4 개 섬의 순서 방문 농부 존이 필요합니다 섬 1 다시 섬 1 섬 (2), 및 경로의 마지막 섬 (3) 위험 등급이 주어진다 : 경로 (1, 2); (2, 3); (3,1) 및 역방향 경로는 각각 5, 2, 1, 위험 등급이있다.

그는 섬 1, 3, 2, 3, 1의 순서로 이동하여 7의 총 위험과 보물을 얻고, 3. 암소지도의 요구 사항 (1, 2, 1, 3)이 경로에 의해 만족 수 . 그것은 큰 위험 등급을 가지고 있기 때문에 우리는 섬 1과 2 사이의 경로를 피할 수 있습니다.

입력 및 출력 형식

입력 형식 :

첫번째 라인 : 공간 분리 된 두 개의 양의 정수 N과 M

제 M + 1 : 광고 나 + 1 행해야 FJ 정수 각각 A1, i 번째 섬을 나타내고

첫 번째 행 + M + 1 N의 M + 2 : 난 처음에 난 섬 섬의 수를 나타내는 N 음이 아닌 정수를 포함하는 구역으로 분리 된 행의 M + 1 ... N 각 경로를 + 위험 지수. 0 보장 i 번째이다.

출력 형식

첫 번째 줄 : 최소 FJ의 위험 지수는 경로의 보물을 찾기 위해 전제하에 통과시켰다.

설명

1 개 섬의 섬 제 2 백 섬 1 호, 마지막 3 개 군도이 데이터 세트는 보물지도 네 섬 FJ 통해 순차적 필요 세 섬을 갖는다. 이들 5,2,1 리스크 지표이다 경로 (1,2), (2,3), (3,1) 및 역방향 경로 각 행 인덱스는 위험을 준다.

FJ는 보물을 얻기 위해 7의 총 수 1,3,2,3,1,3 위험 지수를 최소화하기 위해 섬을 통해 확장 할 수 있습니다. 이 로드맵은 소 (1,2,1,3)의 요구 사항을 충족합니다. 너무 큰 위험 지수이기 때문에 우리는 제 1 및 제 2 섬 사이의 길을 피할 수 있습니다.

참고 :의 테스트 데이터를 B B 위험 지수로하는 것은 위험 지수에 반드시 동일하지 않습니다!

최단 기본적인 질문.

분명히, 이것은 프로이트의 알고리즘의 문제이다. N <= 100 시간 초과하지 않을 것이다. 우리는 플로이드 알고리즘은 두 개에 의해 둘 사이의 최단 거리를 찾을 수 사용하고, 원하는 피사체에 따라 1 ~ N에 순차 최종 출력에 응답 최단 축적된다. 시간 복잡도 : O (N ^ 3)

 

```CPP

사용법 #include <iostream>
#INCLUDE <cstdio>
#INCLUDE <알고리즘>
네임 스페이스를 사용하여 표준;

INT의 N, m, 연도 = 0, I, J, K;

INT의 DIST [105] [105];

원래 당신 [10010]

INT의 main () {
는 scanf ( "% d 개 %의 D", 및 N, m);
(내가 <= m, I = 1 난 ++) {용
는 scanf ( "%의 D", 오리 [I]);
}
에 대해 (ⅰ = 1; 나는 <= N; 내가 ++) {
대한 (j = 1; J <= N; J ++) {
는 scanf ( "%의 D", DIST [I] [J]);
}
}
에 대해 (K = 1; K <= N; ++ K) {
위해 (ⅰ = 1; i가 = <N; i가 ++) {
대한 (j = 1; J <= N; J ++) {
DIST를 [I] [J = 분 (DIST [I] [J], DIST [I] [K] + DIST [K] [J]);
}
}
}
대 (I = 2; I <= m; 내가 ++) {
ANS + DIST = [오라이 [I - 1] [오라이 [I];
}
ANS + DIST = [오라이 [m] [n]을;
ANS + DIST = [1] [오라이 [1];
의 printf ( "%의 D", ANS);
}

```

 

추천

출처www.cnblogs.com/hrj1/p/11123352.html