본문 바로가기

비트마스킹9

[비트마스킹][브루트포스] 1285 동전 뒤집기 c++ 구현 목차https://www.acmicpc.net/problem/1285문제 문제 구현 방향 및 아이디어아이디어가 필요한 문제였다. 생각보다 더 어려웠다....  참고아래 풀이는 비트 마스킹의 이해가 필요하니 다음을 참고하자https://be-senior-developer.tistory.com/134 [비트 마스킹][c++] 개념과 활용 방법에 대해서 알아보자목차 비트연산자의 기본 사용&비트단위로 AND 연산을 한다.|비트단위로 OR 연산을 한다.^비트단위로 XOR 연산을 한다.~피연산자의 모든 비트를 반전시킨다.피연산자의 비트 열을 왼쪽으로 이동시be-senior-developer.tistory.com   1. 가로와 세로에 대한 최적해가로 세로를 모두 참색하게 되면 2^40의 시간 복잡도로 탐색할 수 없.. 2024. 7. 23.
[비트마스킹][완전 탐색] 14391 종이 조각 c++구현 목차https://www.acmicpc.net/problem/14391문제  문제 풀이 시 아이디어1. 종이 자르기이 문제는 종이 자르는 것을 코드로 구현하는 것이 매우 까다로워 아이디어가 필요한 문제였다.0: 가로 1: 세로 라고 방향을 정해놓고 비트마스킹을 통해 모든 0과 1의 조합을 구해서 탐색하면 된다.1001001111000010 이렇게 방향을 정하면 자르는 것이 매우 수월하다. 2. 인덱스 구하기: %연산자와 /연산자를 통해 아래와 같이 수 하나를 이차원 배열의 인덱스로 나눌 수 있다.그 이후 비트마스킹을 통해 모든 경우를 구하자 for (int i = 0; i   코드 구현#include#include#includeusing namespace std;int N, M;int board[8][8.. 2024. 7. 20.
[비트마스킹] 11723 집합 c++구현 목차 https://www.acmicpc.net/problem/11723 문제 문제 방향성비트마스킹을 이용하면 쉽게 풀리는 문제이다.몇번째 비트를 켜고 끄고 확인할지만 잘 해주면 된다. 참고https://be-senior-developer.tistory.com/134 [비트 마스킹][c++] 개념과 활용 방법에 대해서 알아보자목차 비트연산자의 기본 사용&비트단위로 AND 연산을 한다.|비트단위로 OR 연산을 한다.^비트단위로 XOR 연산을 한다.~피연산자의 모든 비트를 반전시킨다.피연산자의 비트 열을 왼쪽으로 이동시be-senior-developer.tistory.com  문제 풀이 시 주의점아래 코드 안써주면 시간초과 난다. ios_base::sync_with_stdio(0); cin.tie(0.. 2024. 7. 17.
[비트마스킹][bfs] 2234 성곽 c++구현 목차https://www.acmicpc.net/problem/2234문제 문제 구현 방향비트 마스킹을 통해 bfs로 탐색하는 식으로 풀었다. 꼭 bfs가 아니어도 dfs로도 풀 수 있다.  문제 구현 시 주의점이차원 배열에서는 아래쪽이 북쪽 방향이니 주의해야 한다.감이 안잡힌다면 일단 완전탐색이 최고인 것 같다. 코드 구현#include#include#include#include#include#include#includeusing namespace std;//주의 이차원 배열은 아래쪽이 북쪽 방향int dx[4] = { -1, 0, 1, 0 };int dy[4] = { 0, -1, 0, 1 };int M, N;int board[51][51] = { 0 };int visit[51][51] = { 0 };i.. 2024. 7. 16.
728x90