Loading...

비둘기집 원리(pigeonhole principle) 기본개념 배우기

1. 비둘기집 원리(pigeonhole principle) "n+1개의 물건을 n개의 상자에 넣을때, 최소한 한 상자에는 적어도 2개 이상의 물건이 반드시 들어있다" n+1개의 물건과 n개의 상자가 있으며, 각 상자당 한개씩의 물건만 존재한다고 가정한다면, 최대 n개의 물건이 존재할 수 있는데, 물건의 숫자는 n+1개이므로 어느 상자에도 들어가지 못한 물건이 하나 남을 수밖에 없으므로 모순이다. 그러므로 각 상자당 한개씩의 물건만 들어가야한다는 가정은 성립할 수 없으며, 적어도 하나의 상자에는 2개 이상의 물건이 존재한다. 너무나도 당연한 이 사실에 "비둘기집 원리(pigeonhole principle)"이라는 거창한 이름이 붙은 이유는 생각보다 많은 수학적 원리를 증명하기 위해 비둘기집 원리가 사용되며..

2022. 9. 4. 03:29

다이나믹 프로그래밍 정복기3 -테크닉이 조금 필요한 연습문제-

1. 문제 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 주어진 n개의 임의의 수열에서 1개 이상의 연속된 부분 수열을 선택할 때, 가장 큰 합을 출력 2. 나의 풀이 단순한 규칙, 점화식으로는 풀기 어렵다 메모리, 시간제한 문제로 $O(N^2)$으로도 통과하기 어렵다 처음에 i번째부터 j번째까지 수열의 합을 dp[i][j]에 저장해서 테이블을 완성하려고 했는데 n의 최대가 100000이라 10만*10만 만들자 마자 메모리 초과 from sys impo..