본문 바로가기

알고리즘/백준 & swacademy108

BOJ 1351 - 무한 수열 https://www.acmicpc.net/problem/1351 1351번: 무한 수열 첫째 줄에 3개의 정수 N, P, Q가 주어진다. www.acmicpc.net 개인적으로 매우 신박한 문제다. 대놓고 기본 dp문제인데 dp배열로 풀기엔 배열 크기가 오버된다. map을 사용해서 dp하는 문제다. #include #include #include using namespace std; map dp; long long n, p, q; long long f(long long n) { if (n == 0)return 1; auto ret = dp.find(n); if (ret != dp.end()) return ret->second; long long rst = 0; rst = f(n / p) + f(n / .. 2019. 8. 6.
BOJ 1949 - 우수마을 https://www.acmicpc.net/problem/1949 1949번: 우수 마을 첫째 줄에 정수 N이 주어진다. (1≤N≤10,000) 둘째 줄에는 마을 주민 수를 나타내는 N개의 자연수가 빈칸을 사이에 두고 주어진다. 1번 마을부터 N번 마을까지 순서대로 주어지며, 주민 수는 10,000 이하이다. 셋째 줄부터 N-1개 줄에 걸쳐서 인접한 두 마을의 번호가 빈칸을 사이에 두고 주어진다. www.acmicpc.net #include #include #include #include using namespace std; int N, val[10000], dp[10000][2]; vector adj[10000], child[10000]; bool visited[10000]; void setChildr.. 2019. 8. 6.
BOJ 1194 - 달이 차오른다, 가자 https://www.acmicpc.net/problem/1194 1194번: 달이 차오른다, 가자. 첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고, 영식이가 열쇠를 숨겨놓는 다면 문에 대응하는 열쇠가 없을 수도 있다. 0은 한 개, 1은 적어도 한 개 있다. 그리고, 열쇠는 여러 번 사용할 수 있다. www.acmicpc.net 제약조건(열쇠,문)이 추가된 플러드필 문제이다 처음엔 큐에 방문노드위치(cy,cx)와 비트마스크를 이용한 현재 key, 그리고 visited배열을 넘겨주면서 열쇠를 먹으면 false로 초기화된 visited를 다음 .. 2019. 8. 6.
BOJ 2098 - 외판원 순회 TSP https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j로 가기 위한 비용을 나타낸다. 항상 순회할 수 있는 경우만 입력으로 주어진다. www.acmicpc.net #include #include #include using namespace std; const int INF = 1e9; int n, w[16][16], dp[16][1 2019. 8. 6.