이거 좀 어렵죠.. 처음 위치와 끝 위치는 대포가 없다는 거 주의하셔야 하구요..
저도 이거 풀 때 그거 간과해서 인풋이 제대로 안 나왔습니다.
대포가 있는 지점 A에서 아무 지점이나 이동한다 칩시다.
(1) 걸어가는 경우 이 때는 그냥 직코스로 가는 게 최선입니다. 이건 반박불가죠.
(2) 문제는 대포를 타고 날라가는 경운데..
이거 생각보다 최단 거리를 보이는 게 꽤 어려운데.. 한번에 잘 하셨네요.
만약에 A에서 어느 지점의 거리가 50 이상이면 처리를 잘 하신 거 같은데.
50 미만이면 어케 처리되나요?
kyaryunha 6년 전
일단ㄴ... 입력 예시도 틀리게 나오는 코드입니다..!!
각 대포를 하나의 정점이라 보고,
double x = fabs(crd[i][0]-crd[j][0]);
double y = fabs(crd[i][1]-crd[j][1]);
double len=hypot(x,y);
adj[i][j]=min((len/5),fabs((len-50)/5)+2 );
이 부분이 처음에 좌표 입력 받은 것으로부터 간선ㄴ을 생성하는 코드고요..!! // 간선은 시간 값을 기준으로..!
그 다음ㅁ은 그냥 다익스트라 ...인 코드입니다.!! // crd는 좌표..!!
인데..!! 입력 예시와 틀리게 나오네요 +ㅁ+.....
어음ㅁ 근데ㅔ 제가 컴파일러를 그냥ㅇ 초기 세팅(??) 상태로 쓰는데, 그랬을때는 15.57이 뜨고,
c++11로 하고 하니깐 무슨ㄴ 0.00 이 떠버리는...... (( 왜이러지ㅣ... ))
한참동안ㄴ 생각해봤는데ㅔ 왜 틀렸는지도 모르겠고, 왜 c++11쓰니깐 다르게 뜨는지도 모르겠고,........ .. ... ...
질문해봅니다 ㅠㅠ
양쪽 컴파일러 다 혹시나 fabs말고 abs써봤는데ㅔ 그럼 그냥ㅇ 컴파일 에러 뜨고요..!!
혹시나 도와주시면 감사합니다..!!