본문 바로가기

전체 글

2873 롤러코스터 규칙 파악하는게 힘든 문제였다. 구현도... 별찍기 문제처럼 모든 경우 나눠가면서 풀어야 편하다. 아니면 뇌가.. 꼬여버려요.. 보면 판이 홀수 * 홀수 / 홀 * 짝 / 짝 * 홀 / 짝 * 짝 이렇게 4가지 경우가 있다. 하나라도 홀수라면 모든 배열을 다 지나갈 수 있는데 짝 * 짝인 경우가 문제였다. 이것도 어떻게 경우 나눠가며 풀었다.. 처음 짤 때 엄청 더럽게 짰는데 정리하고 짜니 완전 깔끔히 짰다. 뿌듯 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #de.. 더보기
16923 다음 다양한 단어 https://www.acmicpc.net/problem/16923 16923번: 다음 다양한 단어 다양한 단어란 모두 다른 알파벳 소문자로만 이루어진 단어를 의미한다. 예를 들어, "codeplus", "coding", "algorithm"은 다양한 단어, "baekjoon", "startlink"는 다양한 단어가 아니다. 다양한 단어 S가 주어졌 www.acmicpc.net 저번에 못 풀었던 ucpc 연습문제 미뤄두다가 오늘 드디어 푼다. 보자마자 개꿀 실버문제~ 라고 생각했는데 아앗 아니었다. 난 그냥 안 나왔던 알파벳 중 하나 끝에 붙이면 된다고 생각했는데 마지막 예제 보고 아니라는 걸 깨달았다. 으으음... abc인 경우는 앞의 알파벳이 다 찼으니 새로운 d를 붙여야 하고.. codeplus인 .. 더보기
20149 선분 교차 3 으으으 구현 열심히 했는데 실수가 있었는지 틀렸다. 누더기 된 코드 확인하는 것보다 멀끔한 북님 코드 분석하는게 더 좋을 것 같아서 개쓰래기 코드를 들고 오지는 않겠다. 아래는 북님 코드 전문이고 이제 분석도 해보자 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(), (x).end() #define xx first #define yy second using namespace std; template using pq = priority_queue; usi.. 더보기
2090 조화평균 분수를 계산해야 하는 문제였다. 분수 문제 풀 일 있으면 갖다쓰자 #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using ii64 = pair; i64 gcd(i64 a, i64 b) { while(b != 0) { i64 r = a % b; a = b; b = r; } return a; } i64 .. 더보기
겹치는 부분 찾기 if (max(a.yy, c.yy) < min(b.yy, d.yy)) y = true; 더보기
12850 본대 산책2 인접행렬 제곱으로 풀 수 있는 문제 총 D분만 움직이고 마지막에 정보대에 도착해야 하니 행렬 제곱의 결과 중 정보대만 확인하면 경우의 수를 알 수 있다. #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using ii64 = pair; using matrix = vector; const int MOD =.. 더보기
16938 캠프 준비 비트마스크로 부분집합 구해서 풀었다. N이 15밖에 안 돼서 이렇게 풀 수 있을 것 같았다. #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using ii64 = pair; int main() { int n, l, r, x; scanf("%d %d %d %d", &n, &l, &r, &x); vecto.. 더보기
12916 K-Path 인접행렬! 대1 수학시간에 배운 개념이 나와서 신기했다. 그런데 행렬 어떻게 구현할지 몰라서 행렬 구현은 참고해서 풀었다. 경로 경우의 수 문제를 이렇게 풀 수 있구나 재밌다 #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using ii64 = pair; using matrix = vector; con.. 더보기