Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Apr 9, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/27378

🧭 풀이 시간

56분

👀 체감 난이도

✏️ 문제 설명

정수 N, K, A, B가 주어지면, A이상 B이하의 정수 중 N과 XOR연산을 했을 때 이진수 표기에 1이 K개 등장하는 수의 개수를 구해보자.

🔍 풀이 방법

[사용한 알고리즘]

  • 조합론

문제를 살짝 바꿔서, 함수 f(n, k, x)1이상 x이하의 정수 중 n과 XOR연산을 했을 때 이진수 표기에 1이 k개 등장하는 수의 개수라고 하면,
문제의 답은 f(N, K, B) - f(N, K, A-1)이 된다.

f를 구할 때는, 최상위 1비트의 위치를 점점 옮겨가며 0과 1의 개수를 세어주고 이항 계수로 경우의 수를 구해준다.

⏳ 회고

너무 어렵다

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Apr 9, 2025
@ShinHeeEul ShinHeeEul merged commit f1168a0 into main Apr 9, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants