#include int arr[2001] = {}; //정수의 배열 char ans[2001][2001] = {}; //팰린드롬인지 아닌지를 담는 배열 맞으면 2, 아니면 1 int loop(int s, int e) { //팰린드롬 구하는 재귀함수 if(s==e) ans[s][e] = 2; //하나일 경우는 반드시 팰린드롬 if(ans[s][e]) return ans[s][e]; //이미 팰린드롬인지 아닌지를 dp로 저장했다면 바로 리턴 if(arr[s] != arr[e]) { //양 끝의 요소가 다르면 팰린드롬이 아니므로 ans[s][e] = 1; return 1; //1 리턴 } else { //같다면 if(s+1
#include #include //강제종료를 위한 exit() 사용 long long int ans = 0; //몇번째 인지를 나타내는 변수 int n, r, c; //입력 받을 변수 void loop(int x, int y, long long int k, long long int size) //분할 정복 { if(k > 1) { //4등분으로 계속 계속 쪼갠다. long long int tmp = k/2; long long int tmp2 = size/4; if(c < x + tmp) { //제1, 3사분면 if(r < y+tmp) loop(x, y, tmp, tmp2); //제1사분면 else { //제3사분면 ans += 2*tmp2; loop(x, y+tmp, tmp, tmp2); } } els..
- Total
- Today
- Yesterday
- 6198번
- C언어
- Krustal
- BFS
- 오프라인 쿼리
- 6198
- 세그먼트 트리
- 1835번
- find
- java
- 덱
- 최대공약수
- C++
- 스택
- 최소 스패닝 트리
- 플로이드
- 1835
- DP
- 누적합
- 그래프
- 누적 합
- 정렬
- 백준
- 그리디
- union
- Mo.s
- 16120번
- 카드
- DFS
- 트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |