thdtjdals3   3년 전

01000...0000

11000...0000

11100...0000

11110...0000

...

11111...1111

위와 같이 생긴 (c+2) x (c+2) 정사각행렬 Base를 (d-1)승하여 구하는 방법으로 풀어보려했습니다.

이 방법 자체는 이전 질문글을 확인해보니까 올바른 방법같은데, 제 코드에서 어떤 방법으로 시간초과를 해결할 수 있을 지 모르겠습니다.

어떻게 하면 좋을까요??

thdtjdals3   3년 전

비트연산자를 버리고, Matrix 구조체에 있던 array를 unsigned long long으로 해주고, 45~51줄을 그냥 행렬곱으로 처리했습니다.

Base 관련해서 코드를 조금이나마 더 간결하게 바꿨어요. 결과적으로 5288ms로 통과했습니다.

thdtjdals3   3년 전

그런데 이번에는 호기심으로 unsigned long long(26364485)을 long long(26364928)으로 써봤는데 오히려 메모리 사용량도 4KB 늘고 시간도 1000ms는 증가하네요;;

이 이유는 진짜 모르겠습니다 ㅜㅜ

댓글을 작성하려면 로그인해야 합니다.