본문 바로가기

전체 글270

백준 곱셈 분할정도 1629 문제 https://www.acmicpc.net/problem/1629 문제 설명 분할정복이다 문제는 a를 b번 곱하고 수가 너무 크니 c로 % 하는 것이다.. (a % b) * (a % b) = 그래도 너무 크다... 그래서 분할정복을 통해서 100 -> 50 -> 25.. 이런식으로 가면된다 왜 ? 반반씩 줄어서 logn이지만 for로 하면 최대 21억번 ... 절대 안된다... 여기서 주의할점은 25 - > 12 , 12 1 하나 남으니 홀수 인 경우 * a로 한번 더 곱해주면된다 소스 #include #define ll long long using namespace std; ll a, b, c; int solve(int a , int b) { if (b == 0) return 1; // n^0 =.. 2021. 10. 6.
비트마스킹 모든 부분집합에 대해서 계산하는 것이다. 한번씩 아직도 헷갈려서 참고하는 부분인데 정리를 해놓는 것이 좋을꺼같았다.. /* //0 ~ 9의 a토핑으로 생각할때 d int a = 0; int fullA = (1 2021. 10. 6.
백준 13249 공의 충돌 문제 https://www.acmicpc.net/problem/13249 문제 풀이 2가지 상태 왼쪽 오른쪽으로 최대 12개이니 2^12로 풀 수있다 수가 너무 크니 비트마스킹을 이용하면된다. 너무 어려웠지만 같이 스터디하는분이 많이 도와주셨다.. for (int i = 0; i > n; for (int i = 0; i > a[i]; } cin >> t; int cnt = 0; //카운트 , for (int i = 0; i < (1 2021. 10. 6.
address binding address Binding : int a = 10; 컴파일러가 알아서 변수a의 메모리 주소를 할당해준다 -> 이것들은 내가 부르기전에는 binary executable file로 저장된 정보일뿐이다. -> 실행 시킬려고 메모리로 가져왔을때 그것은 비로소 프로세스가 된다 -> 프로세스의 주소는 000에서 시작되는 것은 아니다 그것은 os커널이 정해준다 -> 소스에서 주소는 일반 적으로 symbolic한데 컴파일러가 symbolic한 주소를 relocatable한 주소로 바꾼다. relocatable한 주소를 절대적 주소.. 단계별로 바인딩이 다르다 .. logical vs physical address space: logical주소는 cpu에 의해서 발생한 주소 , user가 접근할려는 주소 physic.. 2021. 10. 5.