Loading...
2024. 6. 11. 02:28

문자열 수를 10진법으로 바꾸는 테크닉 - 배열에서 모든 가능한 순서쌍의 두 수를 이어붙여 만든 수의 합

D - Another Sigma Problem (atcoder.jp) D - Another Sigma ProblemAtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.atcoder.jp  배열 A의 모든 순서쌍 (A[i],A[j])에 대하여 f(A[i],A[j])를 A[i]A[j]라고 정의 예를 들어 f(10,1) = 101이고 f(3,14) = 314 i  예를 들어 3 14 15라면 (3,14), (3,15), (14,15) 3개의 순서쌍에 대해 314, 315, 1415가 있고 이들의 합은 2044 모든 순서쌍을 찾는 것은 기본적으로 $O(..

2024. 6. 11. 02:21

ABC 357 C번 복기 - 시에르핀스키 패턴 그리는 재귀 연습

C - Sierpinski carpet (atcoder.jp) C - Sierpinski carpetAtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.atcoder.jp  K = 0이면 1*1 검정색 사각형 K = 1이면 3*3 사각형에 가운데 1*1이 흰색인 사각형 K = N이면 .. $3^{K} * 3^{K}$인 사각형에서, $3^{K-1} * 3^{K-1}$로 9개 사각형을 나누고 K = N-1인 부분이 주위 8개 칸에 들어가고, 중간은 흰색 사각형으로만   K = 0이면 검정색 사각형 하나 def f(k): if k == 0..

중간에서 만나기 테크닉 - 저장하고 검사하는 것이 아니라 검사를 먼저하고 저장하기

5624번: 좋은 수 (acmicpc.net)  정수 배열에서 현재 위치 i번째 수 앞에 있는 수들 중 세 수의 합이 현재 위치 i번째 수와 같게 되는 경우,  그러한 수의 개수를 구하는 문제 "세 수"는 중복해서 선택해도 좋다 예를 들어 [-1,2,0]이면 0은 -1 -1 + 2 = 0이므로 이 조건에 만족하는 수이다 n이 최대 5000인데, 단순하게 짜면 $O(N^{4})$이라 매우 느리다 대충 이런 느낌 for i in range(n): a = A[i] for j in range(i): for k in range(i): for w in range(i): ..

2024. 6. 7. 23:58

linear transformation에 대해 간단하게

matrix나 tensor는 linear transformation이다.    1차원의 [0,1]의 선분을 linear transformation T(x)=3x를 통해 변환하면 3배 늘어난 선분 [0,3]이 된다    주어진 2차원의 정사각형 ABCD를 linear transformation     을 통해 변환하면 2배 늘어나고 회전된 정사각형 A’B’C’D’이 된다    조금 더 복잡하게 주어진 정사각형을 늘리거나 회전시키거나 비틀어버리거나 하더라도 linear transformation 수학적으로 vector space V,W에 대하여 f: V → W가 linear map이라는 것은  임의의 vector u,v ∈ V와 scalar c가  $f(u+v)=f(u)+f(v)$ , $f(cu)=cf(u)..

2024. 6. 7. 23:54

원형테이블에 앉은 n명의 사람 중 서로 인접하지 않은 k명의 사람을 뽑는 방법

1. 일렬로 앉은 경우 먼저 n명의 사람이 일렬로 앉아있다고 생각해보자. a1, a2, a3, ... , an이 일렬로 앉아있고, 여기서 서로 인접하지 않게 b1,b2,...,bk를 선택한다고 생각해보자.   b1,b2,...,bk가 서로 인접하지 않다는 것은 무슨 뜻일까? 먼저 선택한 k명 b1,b2,...,bk 사이의 선택받지 못한 x1,x2,x3,..,xk,xk+1에 대해, x1+x2+...+xk+1 = n-k이다. 왜냐하면 n명중 k명 b1,b2,..,bk를 선택하고 나서 남은 사람은 n-k명이니까    여기서 b1,b2,..,bk가 서로 인접하지 않을려면 그 사이에는 사람이 최소 1명이상 있어야한다. 즉, x2,x3,...,xk는 최소 1 이상이고 x1,xk+1은 0이상이다. 그러므로 구하고자 ..

2024. 6. 7. 02:39

n명 중 k명을 중복해서 선택하는 중복조합의 수 이해하기

1. 중복조합 n종류가 있을 때, k개를 선택하는데 종류의 중복을 허용해서 선택하는 방법의 수를 구하고 싶다. 예를 들어 a,b,c 3개의 문자 중 5개를 중복을 허용해서 선택한다면  (a,a,a,a,a) (a,a,a,a,b) (a,a,a,b,c) .... (b,b,b,c,c) 등등이 있다. 이러한 방법의 수를 어떻게 찾을 수 있을까? 5개의 빈칸에 a,b,c를 결정하면 되는데 2개의 칸막이를 이용해서 다음과 같이 구별하는 방법의 수로 이해할 수 있다   x1,x2 2개의 칸막이를 적당히 옮겨서 첫번째 영역에는 a를 전부 넣고, 두번째 영역에는 b를 전부 넣고 세번째 영역에는 c를 전부 넣는다. n종류를 구분할려면 필요한 칸막이의 개수는? n-1개이다. 1개를 놓으면 2 영역이 생기고 2개를 놓으면 3 ..