dp(20)
-
BOJ 2240 : 자두나무
이 문제는 DP로 해결할 수 있다. dp[i][j][k] = i초에 j번 움직이고 k번 나무에 있을 때 최적해 로 두고 풀면 된다. #include #define sanic ios_base::sync_with_stdio(0); #define MEM 1002 #define f first #define s second using namespace std; typedef long long ll; typedef pair pii; const ll MOD = 1e9+7; ll t,n,m,ans; ll dp[MEM][MEM][3]; ll ja[MEM]; main() { sanic; cin.tie(0); cin >> n >> m; for(int i=1; i> ja[i]; for(int i=1; i
2020.06.01 -
BOJ 18244 : 변형 계단 수
은근 좋은 문제이다. 이 문제는 DP로 풀 수 있다. dp[i][j][k] = (i번째 자릿수에서 수가 j이고 현재 움직인 상태가 k일 때 (k=1,2,3,4,5) ); 여기서 k의 상태는 3일때를 기준으로 하여 감소하면 내려간 것, 증가하면 올라간 것으로 판단해준다. j = 1, 9일때는 증가 또는 감소만 하므로 예외 처리를 해주자. #include #define MEM 105 #define sanic ios_base::sync_with_stdio(0) using namespace std; typedef long long ll; typedef pair pi; const ll MOD = 1e9+7; ll dp[MEM][MEM][MEM]; ll n,ans; int main() { sanic; cin >> ..
2020.05.29