Java
-
public class SegmentTree { long tree[]; //각 원소가 담길 트리 int treeSize; //트리의 크기 public SegmentTree(int arrSize) { //트리 높이 구하기 int h = (int)Math.ceil(Math.log(arrSize)/Math.log(2)); //높이를 이용한 배열 사이즈 구하기 this.treeSize = (int) Math.pow(2, h+1); //배열 생성 tree = new long[treeSize]; } // arr: 원소배열, node: 현재노드, start: 현재구간 배열 시작, end: 현재구간 배열 끝 public long init(long[] arr, int node, int start, int end) { /..
[Java] 세그멘트 트리public class SegmentTree { long tree[]; //각 원소가 담길 트리 int treeSize; //트리의 크기 public SegmentTree(int arrSize) { //트리 높이 구하기 int h = (int)Math.ceil(Math.log(arrSize)/Math.log(2)); //높이를 이용한 배열 사이즈 구하기 this.treeSize = (int) Math.pow(2, h+1); //배열 생성 tree = new long[treeSize]; } // arr: 원소배열, node: 현재노드, start: 현재구간 배열 시작, end: 현재구간 배열 끝 public long init(long[] arr, int node, int start, int end) { /..
2023.12.10 -
& : 비트단위로 AND 연산을 한다. 예) num1 & num2 0 0 1 1 0 0 1 1 0 1 ------------- 0 0 1 0 0 | : 비트단위로 OR 연산을 한다. 예) num1 | num2 0 0 1 1 0 0 1 1 0 1 ------------- 0 1 1 1 1 ^ : 비트단위로 XOR 연산을 한다. (같으면 0, 다르면 1) 예) num1 ^ num2 0 0 1 1 0 0 1 1 0 1 ------------- 0 1 0 1 1 >2 0 0 1 1 0 ------------- 0 0 0 0 1 비트 1자리가 flag 1개 역할 true: 선택, 방문 false: 비선택, 미방문 & (비트곱) : 조건판단 flag 켜져있는지 확인 value1 & value2 - value1과 v..
[Java] 비트 연산자& : 비트단위로 AND 연산을 한다. 예) num1 & num2 0 0 1 1 0 0 1 1 0 1 ------------- 0 0 1 0 0 | : 비트단위로 OR 연산을 한다. 예) num1 | num2 0 0 1 1 0 0 1 1 0 1 ------------- 0 1 1 1 1 ^ : 비트단위로 XOR 연산을 한다. (같으면 0, 다르면 1) 예) num1 ^ num2 0 0 1 1 0 0 1 1 0 1 ------------- 0 1 0 1 1 >2 0 0 1 1 0 ------------- 0 0 0 0 1 비트 1자리가 flag 1개 역할 true: 선택, 방문 false: 비선택, 미방문 & (비트곱) : 조건판단 flag 켜져있는지 확인 value1 & value2 - value1과 v..
2023.08.21