데이터 구조 - pta - 최 단 경로 (Dijkstra) + 출력 경로
2900 단어 - - 기초 - -최 단 로Dijkstra
① 이 문 제 는 변 과 상 관 없 이 인접 표 가 적용 되 지 않 고 심지어 1 차원 배열 만 인접 행렬 을 사용 하지 않 는 다.
② 다 원 최 단 로 의 Dijkstra 표기 법 은 보조 변수 판단 이 많아 서 첫 번 째 점프 가 가장 가 까 워 질 수 있 도록 순 서 → 욕심
③ Dijkstra 구 조 → while → 초기 화 → for 최소 값 찾기 → 인접 업데이트, vis
오래된 영화 '007 의 생사 의 고비' (Live and Let Die) 에서 007 이 마 약사 범 에 게 악어 못 중심의 작은 섬 에 잡 혀 그 는 아주 대담 한 방법 으로 탈출 했다. 연못 속 악어 들 의 큰 머리 를 밟 고 해안 으로 뛰 어 올 랐 다!(그 당시 스턴트맨 이 마지막 악어 에 게 발 을 물 렸 다 고 하 는데 다행히 두 꺼 운 장 화 를 신고 도 망 쳤 다.)
악어 풀 을 설치 하면 길이 가 100 미터 인 사각형 이 고 중심 좌 표 는 (0, 0) 이 며 동북 각 좌 표 는 (50, 50) 이다.지심 도 는 (0, 0) 을 원심 으로 하고 지름 15m 의 원 이다.연못 에 분포 되 어 있 는 악어 의 좌표 와 007 번 점프 할 수 있 는 최대 거 리 를 정 해 야 한다. 그 에 게 가장 짧 은 탈출 경 로 를 알려 줘 야 한다. 이른바 '최 단' 은 007 번 점프 할 걸음 수가 가장 적은 것 을 말한다.
입력 형식:
우선 첫 줄 에 두 개의 정수: 악어 수량 을 드 립 니 다. N (≤) 과 007 회 점프 가능 한 최대 거리 D。뒤이어 N 좋아, 줄 마다 악어 한 마 리 를 줘. ( 좌표. 주의: 악어 두 마리 가 같은 점 에 있 지 않 습 니 다.
출력 형식:
007 탈출 이 가능 하 다 면 먼저 첫 줄 에서 007 을 수출 하려 면 점프 의 최소 걸음 수 를 필요 로 하 며, 두 번 째 줄 부터 지심 도 에서 해안 까지 한 걸음 한 걸음 뛰 어야 하 는 악어 좌 표를 제시 해 야 한다. (. 탈출 이 불가능 하 다 면 첫 줄 에서 0 을 점프 걸음 수로 출력 합 니 다. 최 단 경로 가 유일 하지 않 으 면 첫 번 째 점프 의 가장 가 까 운 해 를 출력 합 니 다. 문 제 는 이러한 해 가 유일 하 다 는 것 을 보증 합 니 다.
입력 샘플 1:
17 15
10 -21
10 21
-40 10
30 -50
20 40
35 10
0 -10
-25 22
40 -40
-30 30
-10 22
0 11
25 21
25 10
10 10
10 35
-30 10
출력 예시 1:
4
0 11
10 21
10 35
입력 샘플 2:
4 13
-12 12
12 12
-12 -12
12 -12
출력 예시 2:
0
#include
using namespace std;
bool vis[105];
int shortd[105];
int Path[105];//Dijkstra
int res=INT_MAX;//
int cnt[105];//
struct point1 //
{
double x;
double y;
};
struct fj1 // ,
{
double d;
int index;
};
struct Graph
{
point1 point[105];
fj1 fj[105];
int c[105][105];// ,
int n,edge;
double D; //
};
bool cmp(fj1 a,fj1 b)//
{
return a.d=50||(abs(G.point[j].y)+G.D>=50))
{
if(res>shortd[j])//
{
//
res=shortd[j];
//
int size=0;
int temp=j;
for(int z=0;z>G.n>>G.D;
for(int i=0;i>G.point[i].x>>G.point[i].y;
G.fj[i].d= sqrt((G.point[i].x)*(G.point[i].x)+(G.point[i].y)*(G.point[i].y));
G.fj[i].index=i; // , ,
}
sort(G.fj,G.fj+G.n,cmp);//
for(int i=0;i=0;i--)//Path ,
{
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu 2066 한 사람의 여행 최적화 플 로 이 드 알고리즘 해결여행 중 에 많은 사람들 을 만 날 수 있 기 때 문 입 니 다 (백마 탄 왕자, ^ 0 ^).......................................................................
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.