国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

poj--3278Catch That Cow(搜索)

2019-11-06 08:16:27
字體:
來源:轉載
供稿:網友

Catch That Cow

Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 84880 Accepted: 26651點擊打開鏈接DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?InputLine 1: Two space-separated integers: N and KOutputLine 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.Sample Input5 17Sample Output4HintThe fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.Source

USACO 2007 Open Silver

題意:這道題的意思是:在一條線上有兩個點n,k;其中從n點往前走(即k點走),有兩種方法:

1、走一步距離1m(可以往前,可以往后),一秒

2、走2*1m(可以往前,可以往后),一秒

問:花費時間最少。

#include<iostream>#include<cstring>#include<queue>#include<cstdio>using namespace std;const int N=1000000;int map[N+10];int n,k;struct node{int x,step;};int check(int x){    if(x<0||x>=N||map[x])        return 0;    return 1;}int bfs(int x){    int i;    queue<node>Q;    node a,next;    a.x=x;    a.step=0;    map[x]=1;    Q.push(a);    while(!Q.empty())    {        a=Q.front();        Q.pop();        if(a.x==k)            return a.step;        next=a;        next.x=a.x+1;        if(check(next.x))        {            next.step=a.step+1;            map[next.x]=1;            Q.push(next);        }        next.x=a.x-1;        if(check(next.x))        {            next.step=a.step+1;            map[next.x]=1;            Q.push(next);        }        next.x=a.x*2;        if(check(next.x))        {            next.step=a.step+1;            map[next.x]=1;            Q.push(next);        }    }    return -1;}int main(){    int ans;    while(scanf("%d%d",&n,&k)!=EOF)    {        memset(map,0,sizeof(map));        ans=bfs(n);        PRintf("%d/n",ans);    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平顶山市| 上高县| 蓬溪县| 仁布县| 湄潭县| 基隆市| 连云港市| 和平县| 密山市| 林芝县| 揭阳市| 韶关市| 瓮安县| 安仁县| 同仁县| 马关县| 台东县| 锡林郭勒盟| 嘉祥县| 石林| 同德县| 大悟县| 德庆县| 农安县| 合川市| 沧州市| 鄂州市| 和田县| 广灵县| 崇义县| 南漳县| 颍上县| 竹溪县| 辉县市| 上饶市| 齐齐哈尔市| 五华县| 陕西省| 宁化县| 巴南区| 报价|