[과제가 끝난] 문제점 : 긍정적 요소들의 어레이. Deepu 배열의 요소를 줄이려고합니다. 그는 X에서 1보다 큰 배열의 모든 요소를 1로 줄이는 함수 Hit (X)를 호출합니다. 그는이 배열을 여러 번 호출합니다. Hit (X)를 여러 번 호출 한 후 배열을 인쇄하십시오. 입력 : n ----- 배열 10^5의 요소가 없습니다. n 요소 -----
업데이트 및 범위 쿼리를위한 일반 세그먼트 트리 클래스를 만들려고합니다. 대신 요소가 정수가되고 다양한 요소에 대해 수행 할 작업을 합이나 곱으로 가정하는 대신 사용자가 요소의 T 유형과 함수를 제공해야합니다. 나는 을으로 명명했다. 이 함수는 T 타입의 매개 변수를 두 개 가져와 동일한 유형 T의 값을 반환합니다.이 반환 값은 동일한 작업을 수행하는 데
this tutorial에서 노드 인덱스를 반환하는 대신 함수가 코드의 마지막 4 줄에서 M의 내용을 수정하는 이유는 무엇입니까? 그의 접근 방식에 문제가 있다고 생각합니다. m[node]이 최근 쿼리의 인덱스를 저장하기 때문에 수정 된 M 어레이는 향후 RMQ [범위 최소 쿼리]를 처리 할 수 없습니다. 그것은 확실히 버그가 int query(int
N 요소와 [L, R] 형식의 N 범위가있는 배열 A가 제공됩니다. 값을 A에서 색인 L부터 색인 R까지의 모든 요소의 합계 범위로 호출하십시오. 예 :하자 어레이 A는 = [2-5 7 9 8] 주어진 범위는 [2,4] 다음,이 범위의 값은 5 + 7 + 9 = 21 개 이제 주어진다 Q 쿼리이며 2 개 개의 타입 중 하나의 각각의 쿼리 1. 0 X Y :
세그먼트 트리를 사용하여 this problem을 해결하고 있습니다. 모든 노드에서 합, 최대, 가장 왼쪽 최대 및 가장 큰 최대를 저장합니다. 그런 다음 그래프를 검색하여 특정 간격에 대한 답을 찾습니다. 이 코드의 속도를 어떻게 높일 수 있습니까? import java.util.Scanner;
//TLE
class GSS1 {
static cl
내가이 페이지에서 세그먼트 트리를 배우는 : 나는 one.Any 도움 하나는 이해할 수있을 것이다 그들에게 것이다 code.I의 다양한 조각을 이해하는 문제를 발견하고 http://letuskode.blogspot.com/2013/01/segtrees.html . 노드 선언 : struct node{
int val;
void split(n
주어진 N * N 행렬과 Q는 주어진 주어진 행렬에 대해 질의합니다. 각 쿼리의 형식은 x1, y1, x2, y2입니다. (x1, y1)과 (x2, y2)에 의해 정의 된 부분 행렬에서 뚜렷한 요소의 수를 각각 왼쪽 위와 오른쪽 하단으로 구해야한다. 제약 조건 : N < = 300 Q < = 10^5 각 쿼리에 대해 하위 행렬에 대해 반복적 인 접근 방법을
만들기 .. 탑 코더 등 것들, 모든 작업은 물론 그 설명되지만, 방법 BIT 즉 을 생성받지 못했습니다 감안할 때 배열, 1-D, 어떻게 전자는 해당 비트를 kake해야합니까? 전의. 배열이 10 8 5 9 1이면 BIT는 무엇을 할 것인가? 나는 초심자 다. 그래서 나의 질문이 어리석게 들리지만 나는 이것을 이해하지 못한다면 사과한다. 그래서, 제발 도
간격의 집합을 저장하고 해당 합집합의 길이를 계산할 수있는 데이터 구조가 필요합니다. 정수 끝이 1과 n 사이 인 줄에 간격 집합이 있다고 가정합니다. 처음에는 비어 있으며 간격을 추가하거나 제거 할 수 있습니다. 각 작업 후에 집합의 모든 간격의 합집합 길이를 계산해야합니다. 푸시, 제거 및 길이를 찾기위한 시간 복잡도가 O(log n) 인 세그먼트 트리