2012-01-23 6 views
-1
아래

http://progspedia.blogspot.com/2011/05/679-dropping-balls.html#comment-formACM 떨어지는 공

#include<stdio.h> 

int main() 
{ 
    int t,D,I,P,i,j; 
    //freopen("in.txt","r",stdin); 

    while(scanf("%d",&t)==1&&t>0) 
    { 
     for(i=0;i<t;i++) 
     { 
      scanf("%d%d",&D,&I); 
      P=1;D--; 

      for (j=0;j<D;j++) 
      { 
       P= I&1 ? (P<<1) : (P<<1)+1; 
       I=(I+1)>>1; 
      } 
      printf("%d\n",P); 
     } 
    } 
    return 0; 
} 

코드는 완벽하게 실행하지만이 코드는 일의 우리가 갈 필요가있는 하위 트리 트랙을 유지하는 방법을 이해하지 못하는 내가 링크에서 복사 한 코드입니다 누군가가 나를 도와 준다면 그것은 나를 위해 매우 도움이 될 것입니다. 이 문제에

링크는 http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=620

+1

이해가 안되면 아마 복사해서는 안됩니다 .-이 경우 아무 것도 보이지 않으므로 파일을 여는 줄을 포함시켜야하고 * in.txt *에 유효한지 확인해야합니다 문제에 대한 입력. – AJG85

+4

당신은 이것을 직접 알아 내야합니다. 문제를 이해합니까? 종이로 해결하는 방법을 알고 있습니까? 그렇다면 (그리고 복사 된 코드를 사용하려면) 디버거를 시작하고, 입력으로 수행 된 작업과 일어날 일에 대한 이해에 어떻게 대응하는지 확인하십시오. 그러나 가장 좋은 점은 문제를 먼저 해결하는 것입니다. – Bart

답변

1

P가 순회 결정이 여기되어

특정 노드 (따라서 서브 트리)를 추적합니다.