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 |
201 | 4893 | 관리자 | 2019.12.20 | 145 |
200 | 4878 | 관리자 | 2019.12.20 | 145 |
199 | 4848 | 관리자 | 2019.12.20 | 148 |
198 | 4698 | 관리자 | 2019.12.20 | 144 |
197 | 4685 | 관리자 | 2019.12.20 | 202 |
196 | 4073 | 관리자 | 2020.04.06 | 156 |
195 | 4068 | 관리자 | 2020.04.06 | 213 |
194 | 4065 | 관리자 | 2019.12.20 | 151 |
193 | 4064 | 관리자 | 2020.04.06 | 153 |
192 | 4059 | 관리자 | 2020.04.06 | 5937 |
191 | 4055 | 관리자 | 2020.04.06 | 152 |
190 | 4044 | 관리자 | 2020.04.06 | 157 |
189 | 4043 | 관리자 | 2020.04.06 | 151 |
188 | 4040 | 관리자 | 2020.04.06 | 150 |
187 | 4039 | 관리자 | 2019.12.20 | 153 |
186 | 4035 | 관리자 | 2020.04.06 | 155 |
185 | 4034 | 관리자 | 2020.04.06 | 147 |
184 | 4028 | 관리자 | 2020.04.06 | 165 |
183 | 4023 | 관리자 | 2019.12.20 | 174 |
182 | 3740 | 관리자 | 2019.12.20 | 212 |
181 | 3730 | 관리자 | 2019.12.20 | 176 |
180 | 3719 | 관리자 | 2019.12.20 | 154 |
179 | 3716 | 관리자 | 2019.12.20 | 143 |
178 | 3713 | 관리자 | 2019.12.20 | 164 |
177 | 3712 | 관리자 | 2019.12.20 | 161 |
176 | 3709 | 관리자 | 2019.12.20 | 147 |
175 | 3708 | 관리자 | 2019.12.20 | 114 |
174 | 3707 | 관리자 | 2019.12.20 | 109 |
173 | 3705 | 관리자 | 2019.12.20 | 112 |