2016-12-08 2 views
-3

문제의 원인은 다음과 같습니다. https://www.hackerrank.com/challenges/coolguy-and-two-subsequences함수 f (a, b)는 아래의 qustion에서 무엇을 의미합니까?

아래에 설명되어 있습니다.

//f(a, b) is a function that returns the minimum element in interval [a, b] 

ans = 0 

for a -> [1, n] 
    for b -> [a, n] 
     for c -> [b + 1, n] 
      for d -> [c, n] 
       ans = ans + min(f(a, b), f(c, d)) 

f (a, b)가 어떤 기능인지 이해할 수 없습니다. 예를 들어 f (1,1)은 어떤 값이고 그 이유는 무엇입니까? 하시기 바랍니다, 쉬운 방법을 설명하십시오.

+8

의견은 도움이되지 않습니다? –

+0

@ some programmer 젠체, 아니, 그게 나를 도와주지 않아 –

+0

그 사이트가 다시는 ... 우리는 일종의 공식적인 블랙리스트가 필요하다. – Lundin

답변

5

정말 이상한 설명입니다.

인덱스의 범위에 대해 가장 작은 배열 요소 (배열로 A)를 반환해야한다고 생각합니다. 그래서 기본적으로

:

static int f(const int *a, int low, int high) 
{ 
    int smallest = INT_MAX; 
    for(int i = low; i <= high; ++i) 
    smallest = min(smallest, a[i - 1]); 
    return smallest; 
} 

- 1a 가정으로 1 인덱스이기 때문이다. 샘플 입력 3 2 1 들어

, 우리 int a[] = { 3, 2, 1 }; 있고, 따라서 f(1, 1)3 단지 첫번째 요소의 최소를 계산한다.

+0

unwind @, 나는 f (a, b)를 이해하지만 c와 d는 무엇입니까? –

+2

@alexparkjw :'c'와'd'는'b + 1'에서'n'까지,'c''에서'n'까지 다양한 인덱스 값입니다. – chqrlie

+0

나는 이해하지 못한다. 그러나 나는 당신에게 초록색 V를 줄 것이다. 너희들을 감사해라. –

1

주석은 다음과 같이 나타냅니다. f(a, b)은 벡터의 위치 a and b에있는 요소의 최소값을 반환하는 함수입니다.

예를 들어 f(1,6)은 벡터에서 1st and 6th 요소를 검색하여 최소값을 반환합니다. 위의 의사 코드에서 알 수 있듯이 f(10,2) : 벡터에서 10 and 2의 위치를 ​​찾습니다.

은 그럼이 코드가하는 것은 : 상단

//f(a, b) is a function that returns the minimum element in interval [a, b] 

    ans = 0 //creates an empty object to fill later in the loop 

    for a -> [1, n] //iterates for the values of a (1 to N) 
     for b -> [a, n] //then iterates for the values of b (a to N) 
      for c -> [b + 1, n] //iterates for the values of c (b+1 to N) 
       for d -> [c, n] //iterate values of d (c to N) 
        ans = ans + min(f(a, b), f(c, d)) //store the answer by keep adding the results in each iteration. for each position combination. 
+2

아니요, 설명에 그 내용이 나와 있지 않습니다. 주석에는 위치가 아니라 _interval_이 나와 있습니다. –

+1

댓글에 그 내용이 나와 있지 않을 수도 있지만 웹 사이트의 예를 볼 때 내가보고 이해하는 내용이 표시됩니다. –

+0

@HerculesApergis 첫 번째''for '에서'[1, n]'은 "1에서 N"을 의미하지만,'f'의 경우 괄호 안에있는 값의 의미가 완전히 다른 점은 재미 있지 않습니까? – unwind

관련 문제