ACM-ICPC Codeforces Round #297(Div. 2) E. Anya and Cubes(양방향 DFS) 먼저 가장 폭력적인 방법을 생각해 보자. 우리는 DFS로 모든 가능한 해를 직접 검색한다. 그러면 각 층에 대해 세 가지 결정이 있다. 바로 이 수를 선택하지 않고 이 수를 선택하고 이 수의 계승을 선택하는 것이다.귀속 깊이가 최대 25, 시간 복잡도 O(3^25), 너무 커서 시간 복잡도를 낮출 방법을 강구해야 한다.이전 버전을 기억하십니까?우리는 네 개의 집합 중에서 매 집합마다 하나의 ... ACM-ICPC양방향 DFS HDU 2836 Traversal(세그먼트 트리 + 이산화 + DP) 제목 링크: 클릭하여 링크 열기 제목: n개의 서열을 줍니다. 한 개의 서열은 h입니다. 인접수의 차이가 h의 서열을 초과하지 않는 개수와% 9901을 구합니다. 사고방식: 고전적인 물문제는 분명히 d[i]로 a[i]로 끝나는 조건을 만족시키는 서열 개수를 나타낸다.그러면 j=a[i]-h와 같다.이 제한은 라인 트리 아래에 표시된 유지보수를 사용하고 라인 트리는 d[i]의 누적 유지보수를 사... dp세그먼트 트리HDUACM-ICPC POJ 3666 Making the Grade(DP) 제목 링크: 클릭하여 링크 열기 제목: n개의 수를 주고 이 수열을 비감소 또는 비증가 수열로 바꾸어 최소한의 변수의 합을 구하도록 요구한다. 사고방식: 이렇게 DP를 설계할 수 있다. d[i][j]는 i개수가 j로 변하는 가장 좋은 결과를 나타낸다. 이렇게 하면 d[i-1][k]로 옮길 수 있다. 그 중에서 k<=j는 상승하는 것이고 대가는 abs(a[i]-j)이다.그러나 수가 너무 많고 ... dppojACM-ICPC POJ 1651 Multiplication Puzzle(구간 DP) 비교적 고전적인 구간 DP dp[i][j]로 구간[i,j]의 모든 숫자를 제거한 후의 가장 좋은 결과를 나타낸다.그러면 상태는 ans=min(ans, dp(i, k-1)+a[k]*a[i-1]*a[j+1]+dp(k+1, j)로 이동);이 상태의 이동은 구간 [i, j]에 대한 마지막 살k를 나타낸다.왜 이렇게 옮겨요?당신이 선택한 이 숫자는 좌우의 숫자가 그에 영향을 미칠 수 있기 때문에 교묘... dppojACM-ICPC HDU 3085 Nightmare II(양방향 BFS) 고전적인 양방향 BFS는 세상의 복잡성을 크게 낮출 수 있다. 남자와 여자가 1초에 걷는 걸음수가 다르기 때문에 우리는 BFS의 특징을 이용하여 층마다 단위로 BFS를 할 수 있다 자세한 참고 코드:... ACM-ICPC양방향 BFS
Codeforces Round #297(Div. 2) E. Anya and Cubes(양방향 DFS) 먼저 가장 폭력적인 방법을 생각해 보자. 우리는 DFS로 모든 가능한 해를 직접 검색한다. 그러면 각 층에 대해 세 가지 결정이 있다. 바로 이 수를 선택하지 않고 이 수를 선택하고 이 수의 계승을 선택하는 것이다.귀속 깊이가 최대 25, 시간 복잡도 O(3^25), 너무 커서 시간 복잡도를 낮출 방법을 강구해야 한다.이전 버전을 기억하십니까?우리는 네 개의 집합 중에서 매 집합마다 하나의 ... ACM-ICPC양방향 DFS HDU 2836 Traversal(세그먼트 트리 + 이산화 + DP) 제목 링크: 클릭하여 링크 열기 제목: n개의 서열을 줍니다. 한 개의 서열은 h입니다. 인접수의 차이가 h의 서열을 초과하지 않는 개수와% 9901을 구합니다. 사고방식: 고전적인 물문제는 분명히 d[i]로 a[i]로 끝나는 조건을 만족시키는 서열 개수를 나타낸다.그러면 j=a[i]-h와 같다.이 제한은 라인 트리 아래에 표시된 유지보수를 사용하고 라인 트리는 d[i]의 누적 유지보수를 사... dp세그먼트 트리HDUACM-ICPC POJ 3666 Making the Grade(DP) 제목 링크: 클릭하여 링크 열기 제목: n개의 수를 주고 이 수열을 비감소 또는 비증가 수열로 바꾸어 최소한의 변수의 합을 구하도록 요구한다. 사고방식: 이렇게 DP를 설계할 수 있다. d[i][j]는 i개수가 j로 변하는 가장 좋은 결과를 나타낸다. 이렇게 하면 d[i-1][k]로 옮길 수 있다. 그 중에서 k<=j는 상승하는 것이고 대가는 abs(a[i]-j)이다.그러나 수가 너무 많고 ... dppojACM-ICPC POJ 1651 Multiplication Puzzle(구간 DP) 비교적 고전적인 구간 DP dp[i][j]로 구간[i,j]의 모든 숫자를 제거한 후의 가장 좋은 결과를 나타낸다.그러면 상태는 ans=min(ans, dp(i, k-1)+a[k]*a[i-1]*a[j+1]+dp(k+1, j)로 이동);이 상태의 이동은 구간 [i, j]에 대한 마지막 살k를 나타낸다.왜 이렇게 옮겨요?당신이 선택한 이 숫자는 좌우의 숫자가 그에 영향을 미칠 수 있기 때문에 교묘... dppojACM-ICPC HDU 3085 Nightmare II(양방향 BFS) 고전적인 양방향 BFS는 세상의 복잡성을 크게 낮출 수 있다. 남자와 여자가 1초에 걷는 걸음수가 다르기 때문에 우리는 BFS의 특징을 이용하여 층마다 단위로 BFS를 할 수 있다 자세한 참고 코드:... ACM-ICPC양방향 BFS