POJ 3278 Catch That Cow
来源:互联网 发布:阿里云数据库rds 设置 编辑:程序博客网 时间:2024/05/14 19:06
从可行性出发容易想到BFS,但是每种状态下有3种情况拓展(i-1,i+1,2*i)
数目有点大,因此需要剪枝
1.每个数最大取到k+1才有意义
2.每个数出现一次即可,因此可以用一下hash技术a[]数组
#include<stdio.h>int n,k;struct note{int num;int s;}que[1000000];int a[1000000];void bfs(void){int head=1,tail=1;que[tail++].num=n;while(head<tail){int temp;temp=que[head].num*2;if(a[temp]==0&&temp<=k+1){a[temp]++;que[tail].num=temp;que[tail].s=que[head].s+1;if(que[tail].num==k)break;tail++;}temp=que[head].num-1;if(a[temp]==0&&temp<=k+1){a[temp]++;que[tail].num=temp;que[tail].s=que[head].s+1;if(que[tail].num==k)break;tail++;}temp=que[head].num+1;if(a[temp]==0&&temp<=k+1){a[temp]++;que[tail].num=temp;que[tail].s=que[head].s+1;if(que[tail].num==k)break;tail++;}head++;}printf("%d\n",que[tail].s);return;}int main(){scanf("%d%d",&n,&k);if(n>=k)printf("%d\n",n-k);elsebfs();return 0;}
0 0
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 catch that cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- Poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 - Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ-3278-Catch That Cow
- 如何打jar包
- matlab 中的矩阵分解
- main()函数
- Ubuntu下pip工具安装遇到的问题
- Linux ./configure --prefix 命令是什么意思?
- POJ 3278 Catch That Cow
- 如何使用Ant脚本编译出Jar和Apk包
- C语言知识整理(三)
- JsonKit使用方法
- 中华人民共和国社会保险法
- 【poj3278】Catch that cow——bfs
- 使用语法分析器对SQL进行解析
- 字符个数统计
- C/C++常用头文件及函数汇总