336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
행렬의 제곱을 구하는 문제이다.
행렬의 크기는 정방행렬로 n*n n~[2,5] 까지 주어지며
제곱 수는 1e+11 까지 주어진다.
처음에 문제를 풀 때, 예제입력을 넣어도
입력
2 5 1 2 3 4
69 558 337 406
출력인데
? A^4 만 되어도 저 수를 넘어가는데 왜 값이 저렇게 나오냐 이생각 했었는데
또 문제 제대로 안 읽었다. 1000으로 나누었을 때 나머지를 출력으로 내보내야 한다고...
.... 생각해보니 큰 수의 문제라면... 좀 어려워지고, 메모리도 솔직히 말이 안될 것 같다는 생각이 들기는 했다.
여튼.,. 문제를 잘못읽고 다시 제대로 읽고나서 코드를 작성하였다.
내가 이문제를 접근하였을 때 제곱이 엄청 큰 수 가 되는데 어떻게 구할 수 있을까? 라는 생각을 먼저했고,
제곱을 구하기 위해서는 각 자신에게 자신을 곱하면 제곱이 되므로 이것을
으로 2^n 까지 행렬을 구해둔 다음, 가장 큰 이진수 부터 빼며 요구하는 제곱꼴을 구하는 방식으로 작성을 하였다.
코드가 너무 더러운데.. 다른 사람은 진짜 간결하게 짜기는 했던데... 하... 1900B 되는 길이인데 다른 사람코드는 300B-400B... 이었던 이뻤던 코드가 있었다...
'PSNote > Problem Solving' 카테고리의 다른 글
[BOJ-1788]피보나치수의확장 (0) | 2017.07.17 |
---|---|
[BOJ-2749]피보나치수3 (0) | 2017.07.17 |
[BOJ-2609]최대공약수와 최소공배수 (0) | 2017.07.17 |
[BOJ-8979]올림픽 (0) | 2017.07.17 |
[BOJ-9359]서로소 (0) | 2017.07.17 |