본문 바로가기 메뉴 바로가기

79brue의 PS 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

79brue의 PS 블로그

검색하기 폼
  • 분류 전체보기 (105)
    • 공지 (1)
    • 일반 (1)
      • 둘러보기 (1)
    • 코딩 (5)
      • 공부 (3)
      • 알고리즘 (0)
      • 기타 (0)
    • 문제풀이 (41)
      • BOJ (12)
      • 랜덤 마라톤 (11)
      • 국대 멘토링 교육 (7)
      • 기출문제 (8)
      • 기타 (3)
    • 시리즈 (40)
      • Problem Solving Diary (30)
      • 나만 모르는 웰노운 (1)
      • 과거 청산 (9)
    • 대회 (15)
      • Codeforces (0)
      • Atcoder (1)
      • 아레나 (2)
      • 기업 대회 & 올림피아드 (10)
      • 커뮤니티 대회 (2)
    • 음악 (1)
    • 기타 (0)
  • 방명록

15896 (1)
Problem Solving Diary #21

BOJ 15986. &+ +&먼저 모든 $A[i] \wedge B[j]$의 합을 구해 보자. $Acnt[x]$를 $A$의 원소들 중 $2^x$의 비트가 $1$인 것의 개수라고 하고, 마찬가지로 $Bcnt[x]$를 정의하자. 비트별로 따로따로 생각하면 답이 $\sum Acnt[i] Bcnt[i] 2^i$임을 쉽게 알 수 있다. 다음으로 모든 $A[i] + B[j]$의 AND 값을 구해 보자. 이것도 역시 비트별로 생각할 것이다. 즉, 모든 $A[i] + B[j]$ 값에 $2^i$의 비트가 켜져 있는지를 검사할 것이다. 먼저 $i=0$일 때부터 시작해 보자. $2^0$의 비트가 켜져 있으려면 $A$는 모두 홀수, $B$는 모두 짝수거나 그 반대여야 한다. $i$가 더 커지는 경우에는 어떻게 검사할 수 있을까..

시리즈/Problem Solving Diary 2024. 5. 30. 17:29
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
링크
  • BOJ
  • solved.ac
  • Codeforces
  • Atcoder
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바