vl0612   5년 전

<f(a)-ff(a)방식이 아닙니다.>

<질문게시판의 반례를 전부 대입해보았습니다.>

<인터넷 검색도 충분히 해보았습니다.>


코드가 틀린 건지 방법이 틀린 건지 조차 모르겠습니디ㅏ. ㅠㅠ

자손의 Mcost[i]에는  <리프 노드에서 i 노드까지의 최장경로 길이의 합 + 자신부터 부모로 가는 간선의 가중치>이 저장되어 있습니다.

dfs를 한 번 돌며 각 정점 a에 대해  (자손의 Mcost가 계산되어 있음이 보장됨){

     두 자손의 Mcost[i]의 합을 체크하고 (ans보다 크면 ans 갱신)

     a의 자손의 최대 Mcost[i]+ a의 부모로 가는 간선의 가중치가 Mcost[a]가 되도록 계산했습니다.

     이렇게 구해진  Mcost[a]가 ans보다 큰지도 검사 (ans보다 크면 ans 갱신)

}

방법이 잘못된 걸까요. 코드가 틀린 걸까요 흑..

코드 3~4번 읽고 난 뒤 방법이 잘못된 건가 생각해봐도.. 맞왜틀 ('ㅁ' )!!

제 머리로는 더 이상 안 될 거 같아서 도움을 요청합니다 'ㅁ'

xairein   5년 전

tree[10010] 로 선언했는데 

for(int i=1;i<=10010;i++) tree[i]=무언가

가 되면 tree[10010]에 접근하기 때문에 memory violation이 발생할 것 같네요 

for(int i=1;i<10010;i++) 가 되어야 하지 않을지..

vl0612   5년 전

헉 ㄷㄷㄷ 이런 실수를... 고치니까 바로 통과되네요 ㄷㄷㄷ

찾아주셔서 정말루 감사합니다!! 'ㅁ' !

댓글을 작성하려면 로그인해야 합니다.