일부 요소가 다른 요소 사이에 오지 않도록 요소를 주문


10

정수 주어 다른 정수의 트리플렛과 집합 S { ( I , J , K ) | 1 I , J , K N , I J , J K , 내가 k는 } , 이는 어느 알고리즘을 찾을 순열 발견 π 세트의 { 1 , 2 , ... , N } 이되도록 ( I을n

S{(i,j,k)1i,j,kn,ij,jk,ik},
π{1,2,,n} 또는 그러한 순열이 존재하지 않음을 올바르게 결정합니다. 덜 공식적으로, 우리는 1부터 n 까지의 숫자를 재정렬하려고합니다. 각각의 트리플 ( I , J , K ) 에서 S는 것을 나타낸다 내가 전에 나타나야 K
(i,j,k)S(π(j)<π(i)<π(k))  (π(i)<π(k)<π(j))
n(i,j,k)Sik새로운 순서로, 그러나 ik 사이에 나타나지 않아야합니다 .jik

실시 예 1

가정 S = { ( 1 , 2 , 3 ) , ( 2 , 3 , 4 ) } . 그때n=5S={(1,2,3),(2,3,4)}

  • ( 1 , 2 , 3 ) S 가 아니라 π ( 1 ) > π ( 3 ) 이므로 유효한 순열이아닙니다.π=(5,4,3,2,1)(1,2,3)Sπ(1)>π(3)

  • 이다하지유효한 순열 때문에 ( 1 , 2 , 3 ) S 그러나 π ( 1 ) < π ( 3 ) < π ( 5 ) .π=(1,2,4,5,3)(1,2,3)Sπ(1)<π(3)<π(5)

  • 는 유효한 순열입니다.(2,4,1,3,5)

실시 예 2

n=5S={(1,2,3),(2,1,3)}n=5S={(1,2,3),(3,4,5),(2,5,3),(2,1,4)}

S


(σmi,σmj,σmk)S(i>jj>k)

BTW :이 문제의 동기는 무엇입니까?
Dave Clarke

@DaveClarke 편집 내용보기. 이 문제는 실험실의 다른 학생들과 논의한 일정 문제를 둘러싼 토론에서 요약되었습니다. 기본적으로 아이디어는 많은 작업이 있으며 그 중 일부는 특정 순서로 실행해야한다는 것입니다. 그러나 작업 사이에 일부 작업이 순서대로 예약되는 것을 원하지 않을 수도 있습니다.
Patrick87

3
Σ={1,2,,n}

σ

답변:


3

순진한 알고리즘이 있습니다. 그것은 궁극적으로 무차별 적 인 힘에 의존하지만 때로는 제대로 수행 될 수 있습니다.

(σmi,σmj,σmk)Si<k¬(i<j<k)Ai<kB¬(i<j<k)Bi>jj>kij,jk

  1. AΘO(|S|)
  2. BΘΘBΘO(|S|2)
  3. BΘ|S|
    B
  4. AB

nxi[0,n1]


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.