C++
DFS
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
using namespace std;
int Now,Final;
int min_=1000000;
void DFS(int n,int t){
if(n==Final)
{
if(min_ > t)
min_ = t;
return;
}
if(t>=min_)
return;
if(n>Final){
DFS(n-1,t+1);
DFS(n-5,t+1);
DFS(n-10,t+1);
}else{
DFS(n+1,t+1);
DFS(n+5,t+1);
DFS(n+10,t+1);
}
}
int main()
{
scanf("%d %d",&Now,&Final);
DFS(Now,0);
printf("%d",min_);
return 0;
}
BFS
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <cstring>
using namespace std;
int Now,Final;
queue<int> q;
int t=0;
void BFS(){
q.push(Now);
while(!q.empty()){
size_t size_=q.size();
for(size_t i=0;i<size_;i++){
int n=q.front();
q.pop();
if(n==Final){
return;
}
q.push(n-1);
q.push(n-5);
q.push(n-10);
q.push(n+1);
q.push(n+5);
q.push(n+10);
}
if(!q.empty())
t++;
}
}
int main()
{
scanf("%d %d",&Now,&Final);
BFS();
printf("%d",t);
return 0;
}
DP
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <cstring>
using namespace std;
int dt[70];
int Now,Final;
const int INF = 100;
const int offset = 10;
int dx[] = {-1, -5, -10, 1, 5, 10};
int dp()
{
if(Now > Final)
swap(Now, Final);
int s = Now - offset;
if(s < 0)
{
Now += -s;
Final += -s;
s = 0;
}
int e = Final + offset;
for(int i = s; i <= e; ++i)
dt[i] = INF;
dt[Now] = 0;
for(int k = 0; k < 6; ++k)
dt[Now + dx[k]] = 1;
for(int i = s; i <= e; i++){
for(int k = 0; k < 6; ++k)
{
if(i + dx[k] >= s && i + dx[k] <= e)
dt[i + dx[k]] = min(dt[i + dx[k]], dt[i] + 1);
}
}
return dt[Final];
}
int main()
{
scanf("%d %d",&Now,&Final);
printf("%d",dp());
return 0;
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 안내사항 | 관리자 | 2019.12.02 | 175 |
172 | 3703 | 관리자 | 2019.12.20 | 8 |
171 | 3701 | 관리자 | 2019.12.20 | 9 |
170 | 3520 | 관리자 | 2019.12.20 | 8 |
» | 3120 | 관리자 | 2019.12.20 | 8 |
168 | 3023 | 관리자 | 2020.04.06 | 60 |
167 | 3022 | 관리자 | 2020.04.06 | 51 |
166 | 3021 | 관리자 | 2020.04.06 | 63 |
165 | 3009 | 관리자 | 2019.12.20 | 8 |
164 | 3008 | 관리자 | 2019.12.20 | 6 |
163 | 3007 | 관리자 | 2019.12.20 | 7 |
162 | 3006 | 관리자 | 2019.12.20 | 14 |
161 | 2748 | 관리자 | 2019.12.20 | 9 |
160 | 2657 | 관리자 | 2019.12.20 | 21 |
159 | 2652 | 관리자 | 2019.12.20 | 7 |
158 | 2641 | 관리자 | 2019.12.20 | 7 |
157 | 2634 | 관리자 | 2019.12.20 | 6 |
156 | 1953 | 관리자 | 2019.12.20 | 7 |
155 | 1936 | 관리자 | 2019.12.20 | 7 |
154 | 1925 | 관리자 | 2019.12.20 | 7 |
153 | 1525 | 관리자 | 2019.12.20 | 9 |
152 | 1505 | 관리자 | 2019.12.20 | 7 |
151 | 1476 | 관리자 | 2019.12.20 | 3 |
150 | 1162 | 관리자 | 2019.12.20 | 7 |
149 | 1161 | 관리자 | 2019.12.20 | 7 |
148 | 1160 | 관리자 | 2019.12.20 | 7 |
147 | 1159 | 관리자 | 2019.12.20 | 5 |
146 | 1158 | 관리자 | 2019.12.20 | 5 |
145 | 1157 | 관리자 | 2019.12.20 | 10 |
144 | 1156 | 관리자 | 2019.12.20 | 7 |
143 | 1155 | 관리자 | 2019.12.20 | 5 |