본문 바로가기

비트마스킹3

[백준 C++] 2098번: 외판원 순회 1. 문제https://www.acmicpc.net/problem/2098 2. 알고리즘 분류다이나믹 프로그래밍비트마스킹비트필드를 이용한 다이나믹 프로그래밍외판원 순회 문제 3. 소스 코드#include #include #include #define MAX_N 16#define INF 987654321using namespace std;int N;int W[MAX_N][MAX_N];int dp[MAX_N][1 > N; for (int i = 0; i > W[i][j]; memset(dp, -1, sizeof(dp)); cout 2024. 5. 15.
[백준 C++] 1562번: 계단 수 1. 문제https://www.acmicpc.net/problem/1562 2. 알고리즘 분류다이나믹 프로그래밍비트마스킹비트필드를 이용한 다이나믹 프로그래밍 3. 소스 코드#include #define MOD_NUM 10e8using namespace std;long long dp[1 > N; /* * 다이나믹 프로그래밍 * dp[존재하는 숫자 bit 표시][총 자릿수][마지막 자리의 숫자] = 해당 조건의 경우의 수 * * ex) 존재하는 숫자 bit 표시 * 이진수로 표현했을 때, i번째 자릿 수의 값이 1이라면, (i - 1) 숫자가 존재한다는 의미. * 502이면, 해당 숫자는 0, 2, 5라는 숫자가 있으므로 0000100101(2) 로 표현된다. * * 행 : 마지막 자리의 숫자 / 열 .. 2024. 5. 6.
[백준 C++] 9527번: 1의 개수 세기 1. 문제 https://www.acmicpc.net/problem/9527 9527번: 1의 개수 세기 두 자연수 A, B가 주어졌을 때, A ≤ x ≤ B를 만족하는 모든 x에 대해 x를 이진수로 표현했을 때 1의 개수의 합을 구하는 프로그램을 작성하시오. 즉, f(x) = x를 이진수로 표현 했을 때 1의 개수라 www.acmicpc.net 2. 알고리즘 분류 수학 누적 합 비트마스킹 3. 소스 코드 #include #define MAX 55 using namespace std; long long A, B; long long power[MAX]; // 1 ~ x까지 모든 수의 1의 개수의 합 계산 함수 long long calculate(long long x) { long long ret = x &.. 2024. 4. 11.