2015 - 4 - 2 알 리 바 바 필기시험 문제: 난 서 의 서열 보존 출력 (bit 배열 실현 hash)

5580 단어 알 리 바 바
분산 형 시스템 의 RPC 요청 은 자주 어 지 러 운 상황 이 발생 합 니 다.어 지 러 운 시퀀스 를 출력 하기 위해 알고리즘 을 쓰 십시오.예 를 들 어 시작 번호 가 1 이 라 고 가정 하면 (1, 2, 5, 8, 10, 4, 3, 6, 9, 7) 이 서열 에 대해 수출 은 123, 4, 567, 8, 9, 10 상기 예 에서 3 이 왔 을 때 4, 5 가 이미 있 는 것 을 발견 할 수 있다.따라서 순 서 를 만족 시 킨 전체 시퀀스 (3, 4, 5) 를 한 줄 로 출력 합 니 다.
 
 1 #include<stdio.h>

 2 

 3 int main()

 4 {

 5     int num ;

 6     while(scanf("%d",&num)!=EOF)

 7     {

 8         int want = 1; //      

 9         int end = 1;  //       

10         int tem , i ;

11         long long x = 0 ;

12         for( i = 0; i < num ; ++ i)

13         {

14             scanf("%d",&tem);

15             x = x^(1<<tem); //   tem  1

16             if( tem == want)

17             {

18                 ++ want ;

19                 int fir = 1 ;

20                 while ((x&(1<<end))!=0)//   tem    1

21                 {

22                     if(fir == 1)

23                     {

24                         printf("%d",end);

25                         fir = 0;

26                     }

27                     else  printf(",%d",end);

28                     ++end;

29                 }

30                 printf("
"); 31 want = end ; 32 } 33 } 34 } 35 return 0; 36 }

좋은 웹페이지 즐겨찾기