description

贝希被困在一个三角形的迷宫之中。这个迷宫有N行(1 <= N <= 1000000)。比如下图是一个3行的迷宫。


  
  迷宫的第i行有2*i-1个三角形,从左到右分别编号为(i,1)、(i,2)等等。贝希每次可以从一个三角形走到任意一个一个跟当前的三角形有邻边的三角形。比如说,如果她目前处于三角形(3,3),那么,她可以走到三角形(3,2)、(3,4)和(4,4)。贝希每次需要一分钟的时间来移动到下一个三角形。

农夫约翰发现贝希被困了!于是她跟踪贝希的iPhone手机(可怜的触摸屏~),得知贝希目前处于三角形(Si,Sj)。因为约翰对贝希有着无穷无尽的浓浓爱意,所以他希望贝希能尽可能快地回到他的身边。
  在迷宫的三角形之中,有M(1 <= M <= 10000)个是出口。在任何一个出口都可以让贝希逃离迷宫。一旦贝希进入一个作为出口的三角形,她用多一分钟就可以逃离这个迷宫。
  找到一个可以让贝希逃离迷宫最小时间T,并输出她应该从哪一个出口逃离迷宫,这个出口记为(OUTi,OUTj)。如果有多个出口同时需要时间T,输出那个行的编号小的出口,如果仍然有多个出口,输出那个列的编号小的。


analysis

  • 把原三角形旋转一下,看成三个三角形,顶部分别是原三角形最上、最左下和最右下的三个小三角

  • 对于原三角形的侧着走,相当于在另两个三角形中的横着走

  • 那么记录一个点分别在三个三角形中的行数,最小步数即为三个绝对值的和


code

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXN 10005
#define INF 1000000007
#define ll long long
#define reg register ll
#define fo(i,a,b) for (reg i=a;i<=b;++i)
#define fd(i,a,b) for (reg i=a;i>=b;--i)
#define O3 __attribute__((optimize("-O3")))using namespace std;ll n,begx,begy,begz,ans=INF,where;struct node
{ll x,y,z,x1,y1;
}a[MAXN];O3 inline ll read()
{ll x=0,f=1;char ch=getchar();while (ch<'0' || '9'<ch){if (ch=='-')f=-1;ch=getchar();}while ('0'<=ch && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
O3 inline bool cmp(node a,node b)
{return a.x<b.x || ((a.x==b.x) && (a.y<b.y));
}
O3 int main()
{//freopen("T1.in","r",stdin);read(),n=read();ll x=read(),y=read();begx=x,begy=(y+1)/2,begz=x-y/2;fo(i,1,n){ll x=read(),y=read();a[i].x=x,a[i].y=(y+1)/2,a[i].z=x-y/2;a[i].x1=x,a[i].y1=y;}sort(a+1,a+n+1,cmp);fo(i,1,n){ll temp=abs(begx-a[i].x)+abs(begy-a[i].y)+abs(begz-a[i].z);if (temp<ans)ans=temp,where=i;}printf("%lld %lld\n%lld\n",a[where].x1,a[where].y1,ans+1);return 0;
}

【JZOJ1320】拯救奶牛相关推荐

  1. 帮奶牛找对象?华为云AI黑科技大揭秘

    AI可以用来做什么? 华为云BU总裁郑叶表示,"AI不是一个独立的产品,而是一种 '基本生产力',适用于大部分经济活动,将改变每一个行业.企业和职业,产生倍增效应." 于是,华为的 ...

  2. 6个超赞的免费神器工具,拯救贫民窟的你!

    之前跟给大家分享了很多期的APP.PC软件.在线网站等,其中有免费的也有付费的,但大家的观点都出奇的一致,那就是"可以接受免费的有缺点,却难以接受体验更棒的付费软件." 看来大家还 ...

  3. 2021-2027全球与中国奶牛冻精市场现状及未来发展趋势

    [报告类型]产业研究 [报告价格]¥4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国奶牛冻精行业市场行业相关概述.全 ...

  4. 联想拯救者Y9000-ubuntu-nvidia-驱动安装

    概述 由于联想拯救者Y9000的硬件都比较新,所以在安装ubuntu 的时候会有很多驱动的问题,本文主要讲解安装nvidia驱动的问题,如网卡.触摸板无效的其他问题请在我的其他文章中查找 友情提示 安 ...

  5. 2018.10.22-dtoi1443奶牛逃亡(cowrun)

    题目描述: Farmer John忘记修复他农场篱笆上的一个大洞,以至于篱笆围着的N(1<= N <=1,000)只奶牛从大洞中逃脱出来,并在农场里横冲直撞.每头在篱笆外的奶牛每分钟都将给 ...

  6. 近4万Star,登月源码登顶GitHub,这位女程序员“拯救”了阿波罗

    作者 | 伍杏玲 转载自CSDN(ID:CSDNnews) 1969 年 7 月 20 日,"阿波罗 11 号"飞船登月,宇航员尼尔·阿姆斯特朗(Neil Armstrong)成功 ...

  7. 程序员如何用“撞针“拯救35亿地球人?

    春节假期即将结束,有多少程序员朋友已经离开家乡在返回北上广深等工作所在城市的路上?有多少程序员已经开工大吉开始了新一年的代码征程?回首这一个春节,8 部电影在大年初一齐上线,<流浪地球>在 ...

  8. 手机拍视频最怕抖,只能靠AI拯救了

    视学算法报道 转载自:机器之心 编辑:陈萍.维度 视频画面的稳定与否,很大程度上影响着观感的舒适度!如何补偿视频抖动,拯救手抖党,来自台湾大学.谷歌等研究机构的学者,提出了防抖新算法,视频拍摄--稳. ...

  9. 【Python基础】拯救你奇丑无比的Python代码的神器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 Python编程语言需要遵循PEP8规范,但是初学者往往记不住这个 ...

  10. 忘了python关键语句?这份备忘录拯救你的记忆

    忘了Python关键语句?这份备忘录拯救你的记忆 今天要介绍的 Python 3 Cheat Sheet 由法国国家科学研究中心(CNRS)的法国机械工程与信息技术实验室(LIMSI)的工程师 Lau ...

最新文章

  1. 抽象工厂————三层架构
  2. DHTMLX-Tabbar
  3. 超大型数据中心阻碍5G的正常发挥?
  4. 通过docker无法访问到tomcat报页面404
  5. 那英、那狗、那年、那事
  6. python输出间隔_在python中生成间隔之间的月份列表
  7. go语言及etcd环境搭建
  8. swfobject简单封装
  9. ai怎么做盒子效果图_AI制作包装纸盒贴图教程
  10. 杨过最后达到了独孤求败的什么境界, 其实金庸在书中已说明
  11. 如何对CAD图纸快速测量?
  12. C# 操作Word书签(二)——读取、替换Word书签
  13. 简单入侵ftp服务器
  14. 微信小程序canvas上传PHP,微信小程序画布 canvas
  15. 学英语看美剧学地道英文必看的10部美剧!
  16. int 类型 转 long的坑
  17. DNS安全(一)DNS缓存投毒与防护
  18. 安卓平台下的GPS架构介绍及驱动移植记录
  19. 5年经验Java程序员面试20天,拿下数个offer,总结出的经验感想!
  20. BadUSB橡皮鸭WinLinux通用下载者

热门文章

  1. ASC18世界超算大赛的三大变化与一大不变丨Xtecher观察
  2. 我的JavaScript学习之路四:JavaScript数据类型之Number类型(1)
  3. 清空计算机网络缓存,如何清除DNS缓存 使用命令清理DNS缓存方法
  4. shibor与沪深300指数的相关性图示
  5. PS三分钟扣图教程,并增强画质
  6. Python统计文件夹里文件个数及每一个文件的行数
  7. 玩转aws之(二)eks 设置efs(nfs)存储卷pvc
  8. 2021-02-24 bat 批处理教程
  9. python汇率兑换_汇率兑换—python第一课
  10. b2b2c商城php源码,多用户B2B2C商城系统 thinkphp5.0