HDU FatMouse and Cheese(기억형 검색+dp 마인드)
1) 가장 소박한 사상은 (0,0)에서 모든 가능한 경로를 매거하여 모든 경로의 ans를 구하고 도전을 비교하면 가장 큰 것이 답이다.2) (0,0)에서 출발한 하위 문제는 (x,y)(x>0,y>0)에서 출발한 것으로 각 하위 문제에 대해 독립을 확정하는 것이 가장 좋은 것이 분명하다.그래서 모든 하위 문제를 해결하고 이 문제를 해결했다.
3) dp[x][y]는 (x, y)에서 먹을 수 있는 치즈를 기록하기 때문에 dp[x][y]는 += 경로에 있는 모든 dp[nx][ny]의 치즈이다
4) 문제는 100*100의 그림이 매번 모든 것을 반복해서 열거하는 것은 과장될 수 있다는 것이다.그래서 사실 자주 사용하는 물건인 기억화 검색을 사용할 수 있다.
(x, y)는 현재 위치이고 (nx,ny)는 다음 단계이다. 거슬러 올라갈 때 반드시 (nx,ny)가 생길 것이다. 이때 dfs의 처음에 그에게 표시를 붙인다. 만약에 dp[nx][ny]가 이미 답이 있다면 더 이상 구할 필요가 없다.
if(dp[x][y]) return dp[x][y];
그렇지 않으면 예를 들어 dp[0][0]를 구할 때 반드시 경로상의 값을 다시 한 번 계산해야 하며 중복 계산의 횟수가 무서운 지경에 이르렀다.
이 표지는 기억화 조작이라고도 부른다. 실제적으로 초래된 효과는 중복 조작을 피하고 필요한 조작만 남긴다. 이것은 dfs를 일반적인 몇 층 순환의 dp로 바꾸는 것과 같다.
/* ***********************************************
Author :angon
************************************************ */
#include
#include
#include
#include
#include
#include
#include
#include
#include
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.