336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
행렬의 제곱을 구하는 문제이다. 
행렬의 크기는 정방행렬로 n*n n~[2,5] 까지 주어지며 
제곱 수는 1e+11 까지 주어진다. 

처음에 문제를 풀 때, 예제입력을 넣어도 

입력
2 5
1 2
3 4
69 558
337 406

출력인데

? A^4 만 되어도 저 수를 넘어가는데 왜 값이 저렇게 나오냐 이생각 했었는데

또 문제 제대로 안 읽었다. 1000으로 나누었을 때 나머지를 출력으로 내보내야 한다고...

.... 생각해보니 큰 수의 문제라면... 좀 어려워지고, 메모리도 솔직히 말이 안될 것 같다는 생각이 들기는 했다.


여튼.,. 문제를 잘못읽고 다시 제대로 읽고나서 코드를 작성하였다. 


내가 이문제를 접근하였을 때 제곱이 엄청 큰 수 가 되는데 어떻게 구할 수 있을까? 라는 생각을 먼저했고,

제곱을 구하기 위해서는 각 자신에게 자신을 곱하면 제곱이 되므로 이것을 

%5Ccombi%20%5E%7B%201%20%7D%7B%20A%20%7D*%5Ccombi%20%5E%7B%201%20%7D%7B%20A%20%7D%3D%5Ccombi%20%5E%7B%202%20%7D%7B%20A%20%7D%20

%5Ccombi%20%5E%7B%202%20%7D%7B%20A%20%7D*%5Ccombi%20%5E%7B%202%20%7D%7B%20A%20%7D%3D%5Ccombi%20%5E%7B%204%20%7D%7B%20A%20%7D%20

%5Ccombi%20%5E%7B%204%20%7D%7B%20A%20%7D*%5Ccombi%20%5E%7B%204%20%7D%7B%20A%20%7D%3D%5Ccombi%20%5E%7B%208%20%7D%7B%20A%20%7D%20

....%5Ccombi%20%5E%7B%20n%20%7D%7B%20A%20%7D*%5Ccombi%20%5E%7B%20n%20%7D%7B%20A%20%7D%3D%5Ccombi%20%5E%7B%202*n%20%7D%7B%20A%20%7D%20

으로 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

+ Recent posts