NOIP模拟题——tractor
1. tractor
题目描述
农场上有N(1 <= N <= 50,000)堆草,放在不同的地点上。FJ有一辆拖拉机,也在农场上。拖拉机和草堆都表示为二维平面上的整数坐标,坐标值在1..1000的范围内。拖拉机的初始位置与所有草堆不同。
FJ开拖拉机时,只能平行于坐标轴(即东、南、西、北四个方向),而且每次开动的一段必须是整数长度。
例如,他可以向北开2个单位长度,然后向东开3个单位长度。拖拉机不能开到草堆的位置。
请帮助FJ计算出最少要移动多少个草堆,他才能将拖拉机开回坐标原点。
拖拉机可以开到1..1000之外的地方去。
输入
第1行: 3个整数,即N 和拖拉机的初始位置 (x,y)
第2..1+N行: 每行2个整数,表示一堆草的位置 (x,y)
输出
第1行: FJ必须移动的最少的草堆的数量
样例输入
7 6 3
6 2
5 2
4 3
2 1
7 3
5 4
6 4
样例输出
1
Time limit
1s
Memory limit
256M
提示
样例说明:拖拉机初始在(6,3),7堆草分别在 (6,2), (5,2), (4,3), (2,1), (7,3), (5,4), (6,4).
FJ必须移动一堆草
***********************************************************************
只要走到边界,则不花代价即可。用到BFS。
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 int n,startx,starty; 7 int a[50005],b[50005]; 8 bool map[1005][1005]; 9 int dx[4]={1,-1,0,0}; 10 int dy[4]={0,0,1,-1}; 11 int dis[1005][1005]; 12 int inq[1005][1005]; 13 int q1[1005*1005*10]; 14 int q2[1005*1005*10]; 15 int head=0,tail=1; 16 inline void bfs(int x,int y) 17 { 18 inq[x][y]=true; 19 q1[1]=x;q2[1]=y; 20 while(head<tail) 21 { 22 head++; 23 int x1=q1[head],x2=q2[head]; 24 25 inq[x1][x2]=false; 26 for(int i=0;i<=3;i++) 27 { 28 int u1=x1+dx[i],u2=x2+dy[i]; 29 if(u1>1001||u1<0||u2>1001||u2<0) continue ; 30 if(map[x1][x2]==true) 31 { 32 if(dis[u1][u2]>dis[x1][x2]+1) 33 { 34 dis[u1][u2]=dis[x1][x2]+1; 35 if (inq[u1][u2]==false) 36 { 37 inq[u1][u2]=true; 38 q1[++tail]=u1;q2[tail]=u2; 39 } 40 } 41 } 42 else 43 { 44 if(dis[u1][u2]>dis[x1][x2]) 45 { 46 dis[u1][u2]=dis[x1][x2]; 47 if (inq[u1][u2]==false) 48 { 49 inq[u1][u2]=true; 50 q1[++tail]=u1;q2[tail]=u2; 51 } 52 } 53 } 54 } 55 } 56 57 return ; 58 } 59 int main() 60 { 61 freopen("tractor.in","r",stdin); 62 freopen("tractor.out","w",stdout); 63 scanf("%d%d%d",&n,&startx,&starty); 64 for(int i=1;i<=n;i++) 65 { 66 scanf("%d%d",&a[i],&b[i]); 67 map[a[i]][b[i]]=true; 68 } 69 memset(dis,127,sizeof(dis)); 70 dis[startx][starty]=0; 71 bfs(startx,starty); 72 int ans=99999999; 73 for(int i=0;i<=1000;i++) 74 { 75 ans=min(ans,dis[i][0]); 76 ans=min(ans,dis[0][i]); 77 ans=min(ans,dis[i][1001]); 78 ans=min(ans,dis[1001][i]); 79 } 80 printf("%d",ans); 81 return 0; 82 }
转载于:https://www.cnblogs.com/937337156Zhang/p/6054684.html
NOIP模拟题——tractor相关推荐
- 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26
背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...
- NOIp模拟题 之 肮脏的牧师 (桶排序)
闲话: 考场上看到了这一题,简直令我震惊!啊!居然还有真么简单的模拟题!良心啊! 而且,还是我 痴迷的 熟悉的游戏 -- 欧气传说 炉石传说! (话说题面的那三张卡都贼 恶心 好用!都可以在前期打出 ...
- 一些noip模拟题一句话题解
Problem A: 序列 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 12 Solved: 9 [Submit][Status][Web Bo ...
- 【noip模拟题】天神下凡(贪心)
vijos某次模拟赛原题... 处理出每个圆的一级祖先就行了... 其实没有那么麻烦,贪心即可出解. 我们将每个圆转换成线段后按左端点小右端点大的方法排序 然后维护一个栈: 对于每一个圆i 如果栈顶右 ...
- noip模拟题11.11 光棍节测试
T1. tractor 题目描述 农场上有N(1 <= N <= 50,000)堆草,放在不同的地点上.FJ有一辆拖拉机,也在农场上.拖拉机和草堆都表示为二维平面上的整数坐标,坐标值在1. ...
- NOIP模拟题——来自风平浪静的明天
[题目描述] 冬眠了五年,光终于从梦中醒来. 千咲.要,大家都在. 隐约记得"昨天"的海船祭,爱花意外成为贡女,沉入海底. 海面冰封,却有丝丝暖流在冰面之下涌动. 此时,爱花沉睡在 ...
- Noip模拟题解题报告
Pro 第一次AK. 题目链接 Sol 站军姿 算是数学题吧,求出两圆的位置关系,然后余弦定理和扇形面积什么的搞搞就行. #include<iostream> #include<cs ...
- noip模拟题11.5
T1 大天使之剑 [问题描述] 小A在游戏⾥打怪.有⼀次,他⼀下⼦遇到了n个怪物. 每个怪物有一个生命值,第i个怪物的生命值是h_i.而小A除了生命值之外,还有一个属性是魔法值m. 小A和怪物们依次行 ...
- [Noip模拟题]寿司
Description 小 c 是一名 oier.最近,他发现他的数据结构好像学傻了.因为他在刷题时碰到了一道傻逼数据结构题,强行使用了平衡树来解决,卡着时间 AC.为此,他被狠狠地嘲讽了一番.于是, ...
- [HZWER NOIP模拟题][杂题][防骗题]数列
简要题意: 长度为n的数列,有m个询问,每组询问a,b,c,表示要求出最小的i满足a*(i+1)*xi^2+(b+1)*i*xi+c+i=0,为保证强制在线,实际的a=a+lastans(b,c同理) ...
最新文章
- 小马源码_Java互联网架构-重新认识Java8-HashMap-不一样的源码解读
- 【NLP_Stanford课堂】语言模型1
- iOS关于rar解压第三方库Unrar4iOS使用总结
- java.math.BigDecimal cannot be cast to java.lang.Integer
- android java代码打印系统日志_Java快速开发平台源码
- 在mybatis里面设置不同数据库运行环境和适应性问题
- Request 对象
- 单片机led数码管显示c语言,各位大神,如何用C语言实现在数码管上实现1234同时亮...
- 电商项目---完成内容管理cms系统
- Python爬虫教程,利用Python采集QQ群成员信息
- 博客中GIF动画超简单制作
- 新的深度学习模型可以准确识别睡眠阶段
- Oracle表中新增字段
- Mysql——DQL(查询语句语法、格式、举例)以及全部数据库源码,复制就可实现全部功能
- 你的贷款今天逾期了吗?
- Linux下设置代理方法
- linux 截取某一段时间的日志,存储到另一个文件中
- 企业邮箱如何发送国外邮件?2021知名企业邮箱网站排名
- Android 在APP内打开指定的QQ、QQ群
- Layui开关添加弹出确认框及layer.confirm的回调
热门文章
- 教你一招最屌的阅读开源项目的姿势
- mfc 鼠标移动到 button上面时 背景颜色改变_Python3与PyQt5编程示例:实现颜色拾取器小工具...
- delphi 去掉字符串中所有的标点符号_[话俾你知]Python使用正则处理字符串技巧(分割、替换)...
- 对unidbgrid的单元格操作
- RESTful风格编程
- [19/03/12-星期二] 数组_遍历(for-each)复制java.util.Arrays类
- Linux SD卡建立两个分区
- 在线客服代码,可以用
- 我这么玩Web Api(一):帮助页面或用户手册(Microsoft and Swashbuckle Help Page)
- Android 开发环境搭建之——ADT-Bundle for Windows