Codeforces 520B Two Buttons 题解
来源:互联网 发布:儿童编程培训班加盟 编辑:程序博客网 时间:2024/05/28 05:15
题意
给你一个数n,每次操作你可以把它乘2或者是减1,问至少需要多少次操作可以把n变为m
思路
剪枝bfs,如果操作后的数大于104 这个上界,或者小于1这个下界就可以减掉,如果这个数之前出现过就可以减掉
代码
#include <cstdio>#include <queue>using namespace std;queue<pair<int,int> > q;bool used[10001];int main(){ int n,m,ans=0; pair<int,int> t; scanf("%d%d",&n,&m); q.push(make_pair(n,0)); while(!q.empty()) { used[q.front().first]=true; if(q.front().first==m) { ans=q.front().second; break; } if(q.front().first*2>=1&&q.front().first*2<=10000&&!used[q.front().first*2]) q.push(make_pair(q.front().first*2,q.front().second+1)); if(q.front().first-1>=1&&q.front().first-1<=10000&&!used[q.front().first-1]) q.push(make_pair(q.front().first-1,q.front().second+1)); q.pop(); } printf("%d\n",ans); return 0;}
阅读全文
0 0
- Codeforces 520B Two Buttons 题解
- CodeForces 520B【Two Buttons】
- Codeforces 520B. Two Buttons
- Codeforces 520B.Two Buttons
- CODEFORCES:B. Two Buttons
- Codeforces 520B. Two Buttons spfa
- Codeforces 520 B Two Buttons BFS
- Codeforces 520B Two Buttons 【BFS】||【spfa】
- codeforces 520B Two Buttons BFS
- CodeForces 520 B.Two Buttons(bfs)
- codeforces 520B Two Buttons[记忆化搜索]
- CodeForces 520B Two Buttons bfs+优先队列
- B. Two Buttons(Codeforces Round #295(div2))
- Codeforces Round #295 B. Two Buttons
- Codeforces 295 Div2 B.Two Buttons
- cf 520 B. Two Buttons bfs
- B. Two Buttons
- B. Two Buttons
- 文档管理Qoppa 商家PDF 系列产品2016R1更新合集
- 利用libevent 和线程池实现高并发服务器的设计
- Bigdecimal类型判断是否等于0(用equals方法的坑)
- QLineEdit
- JavaScript中神奇的call()方法
- Codeforces 520B Two Buttons 题解
- LibLinear使用总结(L1,L2正则)
- Java笔试题解(7)
- Unity 3D
- 单例模式如何传参?
- 爱测未来实习-在讯飞实习下成长
- 洛谷P3765:总统选举 (线段树+treap)
- centos下开启mysql远程服务
- kaggle competition 实践学习 文本分类 keras实现 模型基于yoon kim 的 Convolutional Neural Networks for Sentence Class