【poj 3278】Catch That Cow 题意&题解&代码(C++)
2016-03-22 22:20
706 查看
题目链接:
http://poj.org/problem?id=3278
题意:
给定两个整数n和k
通过 n+1或n-1 或n*2 这3种操作,使得n==k
输出最少的操作次数
题解:
bfs搜索,注意搜索途中的判断,小心会多做一些无用操作,小心re。。
代码:
http://poj.org/problem?id=3278
题意:
给定两个整数n和k
通过 n+1或n-1 或n*2 这3种操作,使得n==k
输出最少的操作次数
题解:
bfs搜索,注意搜索途中的判断,小心会多做一些无用操作,小心re。。
代码:
#include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> #include<queue> using namespace std; int n,k,dis[200005]; queue<int>q; int main() { scanf("%d%d",&n,&k); q.push(n); memset(dis,-1,sizeof(dis)); int flag=0; dis =0; while(!q.empty()&&flag==0) { int now=q.front();q.pop(); if (now<=k && dis[now+1]==-1) { dis[now+1]=dis[now]+1; if (now+1==k) flag=1; q.push(now+1); } if (now-1>=0 && dis[now-1]==-1) { dis[now-1]=dis[now]+1; if (now-1==k) flag=1; q.push(now-1); } if (now*2<=k*2 && dis[now*2]==-1) { dis[now*2]=dis[now]+1; if (now*2==k) flag=1; q.push(now*2); } } printf("%d\n",dis[k]); }
相关文章推荐
- c++中const小结
- c++算法之分解质因数
- 5-29 删除字符串中的子串 (20分)c语言
- 【poj 3414】Pots 题意&题解&代码(C++)
- C++11新特性学习笔记
- 【poj 3126】Prime Path 题意&题解&代码(C++)
- 【Design Pattern】C++ 线程安全的单例模式
- 【poj 3087】 Shuffle'm Up 题意&题解&代码(C++)
- Program received signal SIGSEGV, Segmentation faul;
- 【poj 2251】 Dungeon Master 题意&题解&代码(C++)
- 【poj 1426】Find The Multiple 题意&题解&代码(C++)
- C/C++知识点整理(2)
- C++11 写个线程池
- C++智能指针简单剖析
- C++ map 的用法(转载)
- 我犯了一个低级的C++的逻辑错误
- 查找与排序之冒泡排序篇(C语言实现)
- 代码规范_2:防御编码_c/c++
- C语言指针 直接寻址与间接寻址详解
- C++中实现字符串函数split