:: ADVANCE ::
[수학][Matrix] 행렬 Matrix 1. 행렬 덧셈12345for(int i = 0; i
[수학][제곱] a^n 제곱 a의 n제곱 빠르게 구하기 1. 단순 반복문 -> 시간 복잡도 O(n)1234int ans = 1;for(int i = 1; i > n의 이진수 중 1에 해당할 때 곱하여 나간다.1234567891011int times(int a, int n){ int ans = 1; while(n > 0) { if(n % 2) ans *= a; a *= a; n /= 2; } return ans;}cs >> a는 반복문을 돌 때마다 (이진수의 자리수를 옮길 때 마다)a *= a를 통해서 제곱을 해 준다. 관련 문제https://www.acmicpc.net/problem/1629
BAEKJOON ONLINE JUDGE 2004 조합 0의 개수 https://www.acmicpc.net/problem/2004 조합 nCm의 0의 개수는n!의 0의 개수 - (m!의 0의 개수 + (n - m)!의 0의 개수)이는 (n!의 min(2개수, 5개수) - ((m!의 min(2개수, 5개수) + ((n - m)!의 min(2개수, 5개수))를 하여 구할 수 있다. n!의 2의 개수, 5의 개수 구하는 방법은 [1676 팩토리얼 0의 개수] 참고 위 참고에서 첫 번째 개수를 구하는 방법으로는 [2004 조합 0의 개수]문제를 풀 수가 없다. (문제의 입력 범위가 매우 크기 때문에 time limit가 난다. 따라서 두번째 제시한 방법으로 구하면 아무런 문제 없이 문제를 풀 수 있다. 1234..