HDU 2717(STL)

来源:互联网 发布:守望先锋视频设置优化 编辑:程序博客网 时间:2024/05/22 10:26

看的欧阳学长的代码,等我学会了STL,一定自己写一遍,现在一脸蒙蔽!

#include<cstdio>#include<cstring>#include<queue>//优先队列using namespace std;int x,y;int sign[200005],t[200005];queue<int >q;void bfs();int main(){    while(scanf("%d %d",&x,&y)!=EOF)    {        while(!q.empty())            q.pop();        memset(sign,0,sizeof(sign)); //初始化        memset(t,0,sizeof(t));        q.push(x); //从第一个点开始        sign[x]=1;        t[x]=0; //t[]记录到达该点所学最小时间        bfs();        printf("%d\n",t[y]);    }    return 0;}void bfs(){    while(!q.empty())    {        int d=q.front();        q.pop();        if(d==y)            return;        if(d+1>=0 && d+1<100005 && sign[d+1]==0)        {            q.push(d+1);            t[d+1]=t[d]+1;            sign[d+1]=1;        }        if(d-1>=0 && d-1<100005 && sign[d-1]==0)        {            q.push(d-1);            t[d-1]=t[d]+1;            sign[d-1]=1;        }        if(d*2>=0 && d*2<100005 && sign[d*2]==0)        {            q.push(d*2);            t[2*d]=t[d]+1;            sign[2*d]=1;        }    }}


0 0
原创粉丝点击