컨셉 N개의 요소와 2개의 정수 l 및 r을 갖는 주어진 배열 A에 대해 1≤ ax ≤ 105 및 1≤ l≤ r≤ N. 배열의 모든 요소(ax라고 가정)를 선택하고 삭제할 수 있으며, ax와 같은 모든 요소도 삭제할 수 있습니다. +1, ax +2 ... ax +R 및 ax -1, ax -2 ... ax -L 배열에서. 이 단계에는 도끼 점수가 필요합니다. 우리의 임무는 배열에서 모든 요소를 삭제한 후 총 비용을 최대화하는 것입니다. 입력 2 1 2 3 2 2 1 l = 1, r = 1 출력 8 여기에서 삭제할 2를 선택한
컨셉 크기가 n인 양의 정수의 주어진 배열과 관련하여 삼중항의 최대합( ai + aj + ak ) 0 <=i
컨셉 주어진 BST(Binary Search Tree)와 관련하여 우리의 임무는 그것의 중앙값을 결정하는 것입니다. 아니더라도. 노드의 중앙값 =((n/2번째 노드 + (n+1)/2번째 노드) /2 홀수 노드의 경우 중앙값 =(n+1)/2번째 노드 주어진 BST(노드의 홀수)는 - 7 / \ 4 9 / \ / \ 2 5 8 &
RAM이 있고 RAM이 블록으로 구성되어 있다고 가정합니다. 시스템에서 여러 프로세스가 실행 중입니다. 우리는 모든 프로세스가 다음 정보를 얻는다는 것을 명심해야 합니다. (Thread T, Memory Block M, time t, R/W) 이것은 스레드 T가 주어진 시간 t에서 메모리 블록 M을 구현하고 있었고 작업이 읽기(R)일 수 있음을 나타냅니다. ) 또는 쓰기(W). 다음의 경우는 메모리 충돌 여부를 나타냅니다. - 동일한 위치에서 둘 이상의 읽기 작업이 충돌의 원인이 아닙니다. 쓰기 작업이 x+5에서 x-5
컨셉 주어진 양의 정수 배열과 관련하여 배열의 각 요소를 교체하여 배열의 인접한 요소 간의 차이가 주어진 목표보다 작거나 같도록 합니다. 이제 조정 비용을 최소화하는 작업, 즉 새 값과 이전 값 간의 차이 합계입니다. 따라서 기본적으로 Σ|A[i] – Anew를 최소화해야 합니다. [나]| 여기서 0 ≤ i ≤ n-1, n은 A[] 및 Anew의 크기로 표시됩니다. []는 인접 차이가 target보다 작거나 같은 배열로 표시됩니다. 배열의 모든 요소를 상수 M =100보다 작게 둡니다. 입력 arr = [56, 78, 53,
다음과 같은 흐름 네트워크가 있다고 가정합니다. 우리가 알고 있듯이 s-t 컷은 소스 s 노드와 싱크 t 노드가 서로 다른 하위 집합에 있어야 하는 컷이며 소스 세트에서 싱크 쪽으로 가는 에지를 포함합니다. 여기서 s-t 컷의 용량은 컷 세트의 각 에지 용량의 합으로 표시됩니다. 여기서 우리는 주어진 네트워크의 최소 용량 s-cut을 찾아야 합니다. 여기서 예상되는 출력은 최소 컷의 모든 가장자리입니다. 따라서 입력이 다음과 같으면 그러면 출력은 [(1,3), (4,3), (4,5)]가 됩니다. 이 문제를 해결하기 위해 다
컨셉 시간 요구 사항이 다른 주어진 작업 배열과 관련하여 사용할 수 있는 k개의 동일한 양수인이 있으며 양수인이 작업의 한 단위를 수행하는 데 소비하는 시간도 제공됩니다. 우리의 임무는 다음과 같은 제약 조건으로 모든 작업을 완료하는 데 필요한 최소 시간을 결정하는 것입니다. 첫 번째 제약은 양수인에게 연속 작업만 할당할 수 있다는 것입니다. 예를 들어, 양수인은 배열에서 위치 1과 2에 작업을 할당할 수 있지만 위치 3에는 할당할 수 없습니다. 두 번째 제약은 두 명의 담당자가 작업을 공유(또는 공동 할당)할 수 없
컨셉 n개의 고유한 정수로 구성된 주어진 배열 array[]와 관련하여 요소는 하나의 누락된 요소와 함께 오름차순으로 순차적으로 배치됩니다. 우리의 임무는 누락된 요소를 확인하는 것입니다. 입력 array[] = {1, 2, 3, 4, 5, 6, 7, 9} 출력 8 입력 array[] = {-4, -2, -1, 0, 1, 2} 출력 -3 입력 array[] = {1, 2, 3, 4} 출력 -1 누락된 요소가 없습니다. 방법 원칙 불일치 찾기:이 원칙에 따르면 모든 요소와 해당 인덱스의 차이는 모든 요소에 대해 array[0
컨셉 주어진 바이너리 트리에 대해 다음 값을 반환합니다. 모든 레벨에 대해 이 레벨에 리프가 있는 경우 모든 리프의 합계를 계산합니다. 그렇지 않으면 무시하십시오. 모든 합계의 곱을 계산하여 반환합니다. 입력 Root of following tree 3 / \ 8 6 \ 10 출력 80
컨셉 주어진 두 정수 N과 K와 관련하여 우리의 임무는 비트 OR이 K와 같은 N개의 고유한 정수를 결정하는 것입니다. 가능한 답이 없으면 -1을 인쇄하는 것으로 나타났습니다. 입력 N = 4, K = 6 출력 6 0 1 2 입력 N = 11, K = 6 출력 -1 해결책을 찾을 수 없습니다. 방법 숫자 시퀀스의 비트별 OR이 K이면 K에서 0인 모든 비트 인덱스도 모든 숫자에서 0이어야 한다는 것을 알고 있습니다. 그 결과 K에서 비트가 1인 위치만 변경할 수 있습니다. 그 카운트를 Bit_K라고 합시다. 현재
컨셉 소문자 알파벳만 포함하는 길이가 m인 주어진 문자열과 관련하여 사전순으로 문자열의 n번째 순열을 결정하는 작업입니다. 입력 str[] = "pqr", n = 3 출력 Result = "qpr" 설명 정렬된 순서로 가능한 모든 순열 - pqr, prq, qpr, qrp,rpq, rqp 입력 str[] = "xyx", n = 2 출력 Result = "xyx" 설명 정렬된 순서로 가능한 모든 순열 - xxy, xyx, yxx 방법 여기에서 이 문제를 해
컨셉 bn이 반복 관계 b1로 표시되는 일련의 숫자라고 가정합니다. =1 및bn+1 /bn =2n . 우리의 임무는 log2의 값을 결정하는 것입니다. (bn ) 주어진 n. 입력 6 출력 15 설명 로그2 (bn ) =(n * (n - 1)) / 2=(6*(6-1))/2=15 입력 200 출력 19900 방법 bn+1 /bn =2n bn /bn-1 =2n-1 . . . b2 /b1 =21 , 우리는 달성하기 위해 위의 모든 것을 곱합니다. (bn+1 /bn ).(bn /n-1 )……(b2 /b1 ) =2n +
컨셉 m개의 노드와 모든 노드와 관련된 숫자가 있는 주어진 트리와 관련하여 우리는 2개의 새로운 트리가 형성되는 모든 트리 에지를 깰 수 있습니다. 여기에서 우리는 이런 식으로 edge의 수를 세어 그 edge를 깨뜨린 후 생성된 두 트리에 존재하는 노드의 Bitwise OR이 같도록 해야 합니다. 모든 노드의 값은 ≤ 10^6입니다. 입력 values[]={1, 3, 1, 3} 1 / | \ 2 3 4 출력 2 여기에서 1과 2 사이의 가장자리는 깨질 수
컨셉 다른 배열의 가능한 모든 요소 쌍의 GCD를 포함하는 주어진 배열 array[]와 관련하여 우리의 임무는 GCD 배열을 계산하는 데 사용되는 원래 숫자를 결정하는 것입니다. 입력 array[] = {6, 1, 1, 13} 출력 13 6 gcd(13, 13) = 13 gcd(13, 6) = 1 gcd(6, 13) = 1 gcd(6, 6) = 6 입력 arr[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 8, 11, 13, 3, 3} 출력 13 11 8 6 6
단일 연결 목록과 값 x가 있다고 가정합니다. 합이 x와 같은 쌍을 찾아야 합니다. 추가 공간을 사용할 수 없으며 예상 시간 복잡도는 O(n)입니다. 따라서 입력이 4→7→8→9→10→11→12, x =19인 경우 출력은 [(7, 12), (8, 11), (9, 10)] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − convert_to_xor() 함수를 정의하면 시작됩니다. 이전 :=NULL 시작이 NULL인 동안 수행 - next_list_node :=다음 시작 다음 시작 :=next_list_
이진 행렬이 있다고 가정합니다. 주어진 행렬에서 최대 비트 차이를 갖는 행 쌍을 찾아야 합니다. 따라서 입력이 행렬과 같으면 2행과 3행의 비트 차이가 4이므로 출력은 [2,3]이 되며 이것이 최대입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 값과 두 개의 자식이 있는 Trie 구조를 정의합니다. get_max_bit_diff() 함수를 정의합니다. 이것은 trie, matrix, n, row_index,의 루트를 취합니다. 임시 :=루트, 개수 :=0 for initialize i :=0
컨셉 긍정적인 고유 요소의 주어진 정렬된 이중 연결 목록과 관련하여 우리의 작업은 추가 공간을 소비하지 않고 주어진 값 x와 동일한 곱을 갖는 이중 연결 목록의 쌍을 결정하는 것입니다. 입력 List = 1 <=> 2 <=> 4 <=> 5 <=> 6 <=> 8 <=> 9 x = 8 출력 (1, 8), (2, 4) 입력 List1 = 1 <=> 2 <=> 3 <=> 4 <=> 5 <=> 6 <=> 7 x
이 문제에서는 배열 arr[]이 제공됩니다. 우리의 임무는 C++에서 두 요소가 인접하지 않도록 최대 합을 찾는 프로그램을 만드는 것입니다. 문제 설명 합 시퀀스의 두 숫자가 배열에서 인접하지 않도록 배열에서 시퀀스의 최대 합을 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {5, 1, 3, 7, 9, 2, 5} 출력 22 설명 Taking sum sequence from index 0 with alternate elements : 5 + 3 + 9 + 5 = 22 Taking sum seque
이 문제에서는 배열 arr[]이 제공됩니다. 우리의 임무는 C++에서 두 요소가 인접하지 않도록 최대 합을 찾는 프로그램을 만드는 것입니다. 문제 설명 합 시퀀스의 두 숫자가 배열에서 인접하지 않도록 배열에서 시퀀스의 최대 합을 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 arr[] = {5, 1, 3, 7, 9, 2, 5} 출력 22 설명 Taking sum sequence from index 0 with alternate elements : 5 + 3 + 9 + 5 = 22 Taking sum sequ
이 문제에서는 2차원 배열 arr[][]가 제공됩니다. 우리의 임무는 C++에서 주어진 행렬의 모든 부분행렬에 대해 가능한 최대 추적을 찾는 프로그램을 만드는 것입니다. 문제 설명 모든 부분행렬에 대한 최대 추적을 찾아야 합니다. 트레이스는 행렬의 주대각선 요소의 합입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[][] ={{-2, 5, 3}, {1, 6, 2}, {4, 3, 9}} 출력