-
백준 2916번: 자와 각도기다이나믹프로그래밍(DP) 2018. 10. 21. 17:25반응형
https://www.acmicpc.net/problem/2916
1. 문제
2. 알고리즘
키워드 - DP
- 접근법
0 과 입력 받은, 각도도 만들수 있는 각으로 해야한다.
만들어진 각도를 재활용 하여 다른 각도도 만들 수 있다.
3. 코드
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <math.h>#include <memory.h>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long long#define c_reverse(s) reverse(s.begin(), s.end())#define c_sort(s) sort(s.begin(), s.end())#define print_vector(v) for(int i=0; i<v.size(); i++) cout << v[i];bool table[361];int main() {cin.tie(0);std::ios::sync_with_stdio(false);int n, k; cin >> n >> k;table[0] = true;for (int i=0; i<n; i ++) {int d = 0; cin >> d;for (int j = 0; j<360; j++) {if (!table[j])continue;for (int k = 1; k<360; k++){table[(j + k*d) % 360] = table[(360 * 360 + j - k*d) % 360] = true;}}}for (int i=0; i<k; i++) {int d; cin >> d;if (table[d]) {cout << "YES" << CENDL;} else {cout << "NO" << CENDL;}}return 0;}cs 반응형'다이나믹프로그래밍(DP)' 카테고리의 다른 글
백준 11053번: 가장 긴 증가하는 부분 수열 (10) 2020.11.26 백준 1932번: 정수 삼각형 (0) 2020.11.26 백준 14501번 : 퇴사 (0) 2018.08.12 백준 1463번: 1로 만들기 (0) 2018.08.09 백준 1309번: 동물원 (0) 2018.08.04