网站电脑培训班办公软件,南昌地宝网app,重庆h5制作,北京高端网站建设咸阳传送门 题意翻译 题目描述: 高桥君要调整空调的设定温度。现在的设定温度是A度#xff0c;而他想调到B度。 空调遥控器按一次可以:
上调或下调1度 上调或下调5度 上调或下调10度 高桥君想求出从A调到B度的最小操作数。 输入格式: 输出以下列形式给出。
A B 0A,B40
…传送门 题意翻译 题目描述: 高桥君要调整空调的设定温度。现在的设定温度是A度而他想调到B度。 空调遥控器按一次可以:
上调或下调1度 上调或下调5度 上调或下调10度 高桥君想求出从A调到B度的最小操作数。 输入格式: 输出以下列形式给出。
A B 0A,B40
输出格式: 输出最小操作数。
样例与说明:
样例1: 输入
7 34 输出
5 依次上调10、10、5、1、1度即可
样例2: 输入
19 28 输出
2 上调10度、下调1度即可。
样例3: 输入
10 10 输出
0 数据较小直接bfs即可
#include iostream
#include stdio.h
#include algorithm
#include string.h
#include vector
#include math.h
#include map
#include queue
#define maxn 1000005
#define M(x,y) make_pair(x,y)
using namespace std;
typedef long long ll;
const int inf0x3f3f3f3f;
int vis[200];
struct sa
{int x;int step;
};
int n,k,a,b,ans;
queuesaq;
void bfs()
{while(!q.empty()){int xxq.front().x,ansq.front().step;q.pop();if(xxb){printf(%d\n,ans );return;}if(xx-10!vis[xx-1]){sa p;p.xxx-1;p.stepans1;vis[p.x]1;q.push(p);}if(xx-50!vis[xx-5]){sa p;p.xxx-5;p.stepans1;vis[p.x]1;q.push(p);}if(xx-100!vis[xx-10]){sa p;p.xxx-10;p.stepans1;vis[p.x]1;q.push(p);}if(xx140!vis[xx1]){sa p;p.xxx1;p.stepans1;vis[p.x]1;q.push(p);}if(xx540!vis[xx5]){sa p;p.xxx5;p.stepans1;vis[p.x]1;q.push(p);}if(xx1040!vis[xx10]){sa p;p.xxx10;p.stepans1;vis[p.x]1;q.push(p);}}
}
int main()
{//freopen(in.txt,r,stdin);while(scanf(%d%d,a,b)!-1){ans0;sa p;p.xa;p.step0;q.push(p);bfs();}return 0;
}