题目大意:

输入n,(x,y);n为阻挡的草堆数量,(x,y)为开始时拖拉机所在的位置

接下来n行每行一个坐标(a,b);为各个草堆的坐标

输出拖拉机要回到原点(0,0)需要移动的草堆数量

Sample Input

7 6 3
6
2
5 2
4 3
2 1
7 3
5 4
6 4

Sample Output

1

Hint

INPUT DETAILS:

The tractor starts at
(6,3).  There are 7 bales of hay, at positions (6,2), (5,2), (4,3), (2,1),
(7,3), (5,4), and (6,4).

OUTPUT
DETAILS:

Farmer John only needs to
remove one bale of hay to free his tractor.

 
直接从拖拉机的位置往外广搜整个矩阵 遇到边界就结束  遇到边界前的路径中最少草堆的一条有几个
优先队列升序排序可直接取出当前草堆数量最少的一条路
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <queue>
#include <functional>
using namespace std;
struct NODE
{
int sp,x,y;
NODE(){};
NODE(int spi,int xi,int yi):
sp(spi),x(xi),y(yi){};
bool operator<(const NODE& p)const{
return sp>p.sp; /// 升序排序这里应该是 大于号!!
}
};
int mov[][]={{,},{,-},{,},{-,}};
int G[][];
int st,ed,n;
bool bound(int x,int y)
{
return x==||y==||x==||y==;
}
int main()
{
while(~scanf("%d",&n))
{
scanf("%d%d",&st,&ed);
memset(G,,sizeof(G));
for(int i=;i<=n;i++)
{
int a,b; scanf("%d%d",&a,&b);
G[a][b]=;
} priority_queue < NODE > q;
q.push(NODE(,st,ed));
G[st][ed]=-;
while(!q.empty())
{
NODE tmp=q.top(); q.pop(); if(bound(tmp.x,tmp.y))
{
printf("%d\n",tmp.sp);
break;
}//printf("%d %d %d\n",tmp.x,tmp.y,tmp.sp); for(int i=;i<;i++)
{
int nowx=tmp.x+mov[i][],
nowy=tmp.y+mov[i][],
nowsp=tmp.sp; if(G[nowx][nowy]==-) continue; if(G[nowx][nowy]) nowsp++;
G[nowx][nowy]=-; q.push(NODE(nowsp,nowx,nowy));
//printf("%d %d %d\n",nowx,nowy,nowsp);
}
}
} return ;
}

USACO 2012 March Silver Tractor /// 优先队列BFS oj21567的更多相关文章

  1. USACO翻译:USACO 2012 FEB Silver三题

    USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...

  2. USACO翻译:USACO 2014 MARCH Silver三题

    USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...

  3. [USACO 2012 Mar Silver] Landscaping【Edit Distance】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=126 好题啊好题,一开始就输给了这道题的想法! 先把原始状态以及目标状态换 ...

  4. [USACO 2012 Jan Silver] Bale Share【DP】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=107 没想到太不应该了,真的不应该啊! f[i][j][k]表示前i个包, ...

  5. [USACO 2012 Jan Silver] Delivery Route【拆点】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=106 这道题还真是完全没思路,真的不知道怎么做,但是看了题解后恍然大悟. ...

  6. USACO翻译:USACO 2012 JAN三题(2)

    USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛联盟 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking bale ...

  7. USACO翻译:USACO 2012 JAN三题(1)

    USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...

  8. USACO翻译:USACO 2013 NOV Silver三题

    USACO 2013 NOV SILVER 一.题目概览 中文题目名称 未有的奶牛 拥挤的奶牛 弹簧牛 英文题目名称 nocow crowded pogocow 可执行文件名 nocow crowde ...

  9. USACO翻译:USACO 2013 DEC Silver三题

    USACO 2013 DEC SILVER 一.题目概览 中文题目名称 挤奶调度 农场航线 贝西洗牌 英文题目名称 msched vacation shuffle 可执行文件名 msched vaca ...

随机推荐

  1. GlobalExceptionHandler 捕获抛出的异常,返回特定值给前端

    /** * @author hhh * @date 2019/1/17 16:28 * @Despriction */ @ResponseBody @ControllerAdvice @Log4j2 ...

  2. thinkphp读取配置

    无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置. 获取已经设置的参数值:C('参数名称') 例如, $model = C('UR ...

  3. 获取ThinkPHP

    获取ThinkPHP的方式很多,官方网站(http://thinkphp.cn)是最好的下载和文档获取来源. 官网提供了稳定版本的下载:http://thinkphp.cn/down/framewor ...

  4. Java中的线程Thread方法之---suspend()和resume()

    前篇说到了Thread中的join方法,这一篇我们就来介绍一下suspend()和resume()方法,从字面意义上可以了解到这两个方法是一对的,suspend()方法就是将一个线程挂起(暂停),re ...

  5. vue-为什么子组件中的data选项必须是函数?

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. C语言itoa()函数和atoi()函数详解(整数转字符C实现)【转载】

    文章转载自https://www.cnblogs.com/bluestorm/p/3168719.html   C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. ...

  7. LeetCode 1108. Defanging an IP Address (IP 地址无效化)

    题目标签:String 题目给了我们一组 ip address,让我们把 . 变成 [.],这题可以用replace,但是这样做的话,好像没意义了.所以还是走一下array,具体看code. Java ...

  8. class9_Menubar 菜单

    最终的运行效果图(程序见序号5) #!/usr/bin/env python# -*- coding:utf-8 -*-# -------------------------------------- ...

  9. 剑指offer——27二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  10. jmeter 实战

    JMeter 接口测试 什么是接口测试 概念 内部接口 方法与方法之间的交互 模块与模块之间的交互 一种调用对外包装的接口 Web接口分类 web接口分类:https.http.webService ...