본문 바로가기

전체 글265

백준(BOJ) 5676 음주코딩 ** 우선 알고리즘은 기본적인 세그먼트 트리를 이용하여 풀면 됩니다. 이번 문제를 풀면서 넘나 부끄러웠습니다.... 알고리즘을 이해하였다고해서 기본적인 실수를 하면서... 많은 시간을 썼습니다... 우선 항상 숫자입력을 받다보니 문자 입력을 이상하게 받아오고 정답이 오버플로우가 나타날수 있다는 것도 깨닫지 못했습니다..... 다음부터 기본부터 실수 하는일이 없도록 조심해야할 것 같습니다. #include #include #include #include #include #include #include #include #include #define MAX 100005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n,m,.. 2018. 6. 1.
백준(BOJ) 11505 구간 곱 구하기 * 세그먼트 트리의 기본적인 구조이다. 하나씩 업데이트를 하는과정과 구간의 곱을 구하는 과정을 구현하면 된다. 구하는 과정에서 오버플로우가 발생하는 것을 조심한다. #include #include #include #include #include #include #include #include #include #define MAX 1000005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n,m,a,b,c,d,arr[MAX*4]; long long ans; long long update(int cur,int dest,int val,int left,int right) { if(!(left 2018. 6. 1.
백준(BOJ) 2336 굉장한 학생 *** 세그먼트 트리를 사용하는 문제이다. 이 문제에서는 "데이터 입력을 어떻게 처리하냐가" 중요한것 같다. 상당히 이해하기도 어려웠고 까다로웠던 문제였다. 굉장한 학생이란 3번의 모든 시험에서 학생 본인보다 대단한 학생이 없는 경우이다. 입력에서 1,2,3,5가 4명이 굉장한 학생이 된다. #include #include #include #include #include #include #include #include #include #define MAX 500005 #define INF 987654321 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; typedef struct st { int first; int second;.. 2018. 6. 1.
백준(BOJ) 1920 수찾기 * 가장 기본적인 이분탐색 방법입니다... 본인의 머리속에서 떠오르는데로 짜고 다른분들의 코드를 보니 종료시점에서 찾고자 하는수를 찾지 못한 조건을 left>=right로 주는 것이 정석적인 방법인거 같다. 이하 생략~ #include #include #include #include #include #include #include #include #include #define MAX 40005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n, m, tmp, lft, mid, rht; int map[100005]; int finder(int dest) { while (1) { if (map[mid] == dest) .. 2018. 6. 1.