[NWPU2016][寒假作业][正常版第三组]搜索和二分 N

题意,一条数轴上,告诉你起点和终点,只能向前走1,向后走1,或者走到二倍的现在的位置,每次都耗时一分钟。问从起点到终点的最短时长。

简单地bfs

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <map>
#include <string>
#include <string.h>
#include <queue>
#include <vector>
#include <set>
#include <cmath>
#define inf 0x7fffffff
using namespace std;
int n,k,a[1000010],flag[1000010];
int bfs(){
     queue<int> q;
     q.push(n);
     while(q.size()){
        int p=q.front();
        q.pop();
        if(p==k) break;
        for(int i=0;i<3;i++)
        {
               if(!i&&p>0&&!flag[p-1])
               {
                q.push(p-1);
                a[p-1]=a[p]+1;
                flag[p-1]=1;
               }
               if(i==1&&!flag[p+1]&&p+1<1000010)
               {
                q.push(p+1);
                a[p+1]=a[p]+1;
                flag[p+1]=1;
               }
               if(i==2&&!flag[p*2]&&p*2<1000010)
               {
                q.push(p*2);
                a[p*2]=a[p]+1;
                flag[p*2]=1;
               }
        }
     }
     return a[k];
}
int main()
{
    while(scanf("%d%d",&n,&k)!=EOF)
    {
            memset(a,0,sizeof(a));
            memset(flag,0,sizeof(flag));
            printf("%d\n",bfs());
    }
    return 0;
}

一定要flag数组,因为很有可能好几种走法都能到达终点,导致,终点被加了好几次。而最先走到的,肯定是最短的。还有每次走的时候都要判断有没有越界。。因为这个RE两次。

时间: 2024-10-07 05:45:34

[NWPU2016][寒假作业][正常版第三组]搜索和二分 N的相关文章

[NWPU2016][寒假作业][正常版第三组]I

素数环,简单的dfs,但这道题我有个小地方写错了半天发现不了..就是flag数组的位置.一定要放在if里面,刚开始没注意,一不小心写到外面了. #include <iostream> #include <algorithm> #include <cstdio> #include <map> #include <string> #include <string.h> #include <queue> #include <

2016蓝桥杯省赛C/C++A组第六题 寒假作业

题意:现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ 每个方块代表1~13中的某一个数字,但不能重复. 比如: 6 + 7 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 以及: 7 + 6 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 就算两种解法.(加法,乘法交换律后算不同的方案) 你一共找到了多少种方案? 分析:回溯即可,但是如果等到cur==12

2017级面向对象程序设计寒假作业2

Deadline:2018.02.11 22:00 pm 第一次的寒假作业,开启了大家的寒假生活,转眼回到了"小学生作文题"的感觉.不知道是否也通过这次作业,将你的回忆时光拉回到了几年前或十年前,沉思回忆代替了纷扰的知识.很多同学回忆了小学.中学的课任老师,或书法.绘画的老师.无论他们是严厉还是宽容,是鸡汤还是淡定,都或多或少的影响或潜移默化改变着你.在经过一次时光超越后,书归正传,我们开启编码的作业. 一.Pintia小作业 注册pintia,填写昵称为"fzu+学号&qu

寒假作业03

寒假作业03 0. 先来闲聊一下 我还记得以前的时候家严经常去某个,呃,著名的电子一条街去买那些各种各样的装系统光盘(或者其他啥的?忘了),基本都是windows的,啥啥纯净版xp,啥雨林木风xp.当然那时候还小,对电脑的印象就是玩游戏,对电脑系统啥的一窍不通(现在也是,哈哈).即便如此,年轻的我还是意识到这些乱七八糟的光盘是有问题的,为啥?装了之后电脑又慢还总死机,于是就再去那条街去买新的盘,如此往复恶性循环,家里老电脑就是这样坏掉的.很明显这个教训并不是十分刻骨铭心,因为新电脑也开始遭受各种

洛谷 P2717 寒假作业

题目背景 zzs和zzy正在被寒假作业折磨,然而他们有答案可以抄啊. 题目描述 他们共有n项寒假作业.zzy给每项寒假作业都定义了一个疲劳值Ai,表示抄这个作业所要花的精力.zzs现在想要知道,有多少组连续的寒假作业的疲劳值的平均值不小于k? 简单地说,给定n个正整数A1,A2,A3,...,An,求出有多少个连续的子序列的平均值不小于k. 输入输出格式 输入格式: 第一行两个正整数,n和k. 第二行到第n+1行,每行一个正整数Ai. 输出格式: 一个非负整数. 输入输出样例 输入样例#1: 3

洛谷P2717 寒假作业

题目:https://www.luogu.org/problemnew/show/2717 题目背景 zzs和zzy正在被寒假作业折磨,然而他们有答案可以抄啊. 题目描述 他们共有n项寒假作业.zzy给每项寒假作业都定义了一个疲劳值Ai,表示抄这个作业所要花的精力.zzs现在想要知道,有多少组连续的寒假作业的疲劳值的平均值不小于k? 简单地说,给定n个正整数A1,A2,A3,...,An,求出有多少个连续的子序列的平均值不小于k. 输入输出格式 输入格式: 第一行两个正整数,n和k. 第二行到第

寒假作业2-2

所选课程 西安交通大学的计算机程序设计课程 理由: 首先是该门课程符合寒假作业的选课要求.并且西安交通大学做为一所名气相对较高的学府,我相信他的课程质量在同类型的课程中应该会是较为出色的.最重要的是该门课程有国家精品的标志,并且多次开课的参加人数均是几万人,既然mooc给予了这么高的评价,那么我认为该门课程必当有很多值得我学习的地方.但是考虑到这门课的课程量十分庞大,我再三估计认为还是很难在一个寒假之内将这门课程学完,不过我会尽我所能挤出时间,在充分掌握所学课程的情况下再进行该课程下一阶段的学习

【2017级面向对象程序设计寒假作业】第2次成绩排行

[2017级面向对象程序设计寒假作业]第2次成绩排行 作业地址 http://www.cnblogs.com/easteast/p/8421230.html 评分准则 本次作业满分 20 分,其中代码分数 10分.博客分数 10 分. 代码得分点在于: 运行10个测试点,视通过测试点的数量而定基础分.若存在仓库无代码文件或代码不通过编译.编译后无法运行等则视情况扣除大量分数. 是否符合输出规范.由于此次主要测试在于最终输出的乘客等待时间和,若对于各楼层的停靠情况的输出不合理则扣分较少,希望在之后

评论第三组

团队博客每天发布站立会议信息(配站立会议照片).任务进度.任务看板(图).燃尽图(图).个人博客发表每天个人工作总结昨天干了什么:今天准备干什么:遇到困难没有: 检查第三组:发布站立会议信息(配站立会议照片).任务进度.任务看板(图).燃尽图(图).都已完成要求.只是连续发表七天 组员:张学晴,个人冲刺10天,发表完全,表明任务,进行总结,表明困难 牛俊燕:个人冲刺7天,发表完全,表明任务,进行总结,表明困难 谷伟华:个人冲刺10天,发表完全,表明任务,进行总结,表明困难 尤凯莉:个人冲刺10天