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 | 179 |
| 201 | 4893 | 관리자 | 2019.12.20 | 149 |
| 200 | 4878 | 관리자 | 2019.12.20 | 149 |
| 199 | 4848 | 관리자 | 2019.12.20 | 152 |
| 198 | 4698 | 관리자 | 2019.12.20 | 148 |
| 197 | 4685 | 관리자 | 2019.12.20 | 206 |
| 196 | 4073 | 관리자 | 2020.04.06 | 160 |
| 195 | 4068 | 관리자 | 2020.04.06 | 219 |
| 194 | 4065 | 관리자 | 2019.12.20 | 155 |
| 193 | 4064 | 관리자 | 2020.04.06 | 157 |
| 192 | 4059 | 관리자 | 2020.04.06 | 5941 |
| 191 | 4055 | 관리자 | 2020.04.06 | 156 |
| 190 | 4044 | 관리자 | 2020.04.06 | 167 |
| 189 | 4043 | 관리자 | 2020.04.06 | 155 |
| 188 | 4040 | 관리자 | 2020.04.06 | 154 |
| 187 | 4039 | 관리자 | 2019.12.20 | 157 |
| 186 | 4035 | 관리자 | 2020.04.06 | 159 |
| 185 | 4034 | 관리자 | 2020.04.06 | 151 |
| 184 | 4028 | 관리자 | 2020.04.06 | 175 |
| 183 | 4023 | 관리자 | 2019.12.20 | 178 |
| 182 | 3740 | 관리자 | 2019.12.20 | 218 |
| 181 | 3730 | 관리자 | 2019.12.20 | 181 |
| 180 | 3719 | 관리자 | 2019.12.20 | 158 |
| 179 | 3716 | 관리자 | 2019.12.20 | 147 |
| 178 | 3713 | 관리자 | 2019.12.20 | 167 |
| 177 | 3712 | 관리자 | 2019.12.20 | 164 |
| 176 | 3709 | 관리자 | 2019.12.20 | 150 |
| 175 | 3708 | 관리자 | 2019.12.20 | 117 |
| 174 | 3707 | 관리자 | 2019.12.20 | 112 |
| 173 | 3705 | 관리자 | 2019.12.20 | 115 |