2019.3.2jzoj

1320. 拯救奶牛
贝希被困在一个三角形的迷宫之中。这个迷宫有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,输出那个行的编号小的出口,如果仍然有多个出口,输出那个列的编号小的。
Input
  第一行:两个由空格隔开的整数:N和M。
  第二行:两个由空格隔开的整数:Si和Sj。
  第三到第M+2行:第i+2行有两个由空格隔开的整数Ei和Ej,表示三角形(Ei,Ej)是出口。

Output
  第一行:两个由空格隔开的整数:OUTi和OUTj。
  第二行:一个单独的整数:T。
 
Sample Input
4 2
2 1
3 5
4 4 
Sample Output
4 4
4

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+10;
int n,m,s,t;
bool  k=0;//模拟
struct node{int w,x,y;
}a[maxn];
inline int read(){int x=0,w=0;char ch=0;while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}while(isdigit(ch)) {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return w?-x:x;
}
bool cmp(node a,node b){if(a.w==b.w) {if(a.x==b.x) return a.y<b.y;else return a.x<b.x;}else return a.w<b.w;
}
void pd(int x,int y,int id){int t1=0,t2=0,t3=0,t4=0;int d=(x-s)<<1;if(k){if(x>s){t1=t+d-1;t2=t+d;//rt3=t;t4=t+1;//lif(y==t1) a[id].w=d;else if(y==t2) a[id].w=d+1;else if(y==t3) a[id].w=1+d;else if(y==t4) a[id].w=d;else{if(y>t2) a[id].w=y-t2+d+1;else if(y<t3) a[id].w=t3-y+1+d;else{if(y%2) a[id].w=d+1;else a[id].w=d; }}return;}else if(x==s){a[id].w=abs(y-t)+1;return;       }else{d=(s-x)<<1;t1=t-d-1;t2=t-d;//rt3=t;t4=t+1;//lif(y==t1) a[id].w=d+2;else if(y==t2) a[id].w=d+1;else if(y==t3) a[id].w=1+d;else if(y==t4) a[id].w=d+2;// else{if(y<t1) a[id].w=d+t1-y+2;else if(y>t4) a[id].w=y-t4+2+d;else{if(y%2) a[id].w=d+1;else a[id].w=d+2; }}return;}}else{if(x>s){t1=t+d+1;t2=t+d;//rt3=t;t4=t-1;//lif(y==t1) a[id].w=d+2;else if(y==t2) a[id].w=d+1;else if(y==t3) a[id].w=1+d;else if(y==t4) a[id].w=d+2;else{if(y>t1) a[id].w=y-t1+d+2;else if(y<t4) a[id].w=t4-y+2+d;else{if(y%2) a[id].w=2+d;else a[id].w=1+d; }}return;}else if(x==s){a[id].w=abs(y-t)+1;return;        }else{d=(s-x)<<1;t1=t-d;t2=t-d+1;//rt3=t;t4=t-1;//lif(y==t1) a[id].w=d+1;else if(y==t2) a[id].w=d;else if(y==t3) a[id].w=1+d;else if(y==t4) a[id].w=d;// else{if(y<t1) a[id].w=t1-y+d+1;else if(y>t3) a[id].w=y-t3+1+d;else{if(y%2) a[id].w=d;else a[id].w=d+1; }}return;}}
}
int main(){n=read(),m=read();s=read(),t=read();int x,y;if(t%2) k=1;//奇数 for(int i=1;i<=m;i++){a[i].x=read(),a[i].y=read();pd(a[i].x,a[i].y,i);        }sort(a+1,a+m+1,cmp);printf("%d %d\n",a[1].x,a[1].y);printf("%d",a[1].w);return 0;
}

1320. 拯救奶牛相关推荐

  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. json_encode 处理中文乱码
  2. 外架小横杆外露长度规范要求_脚手架各部位构造要求解读!
  3. fifo页面置换算法设计思路_千万级并发!如何设计一个多级缓存系统?
  4. BZOJ_1601_[Usaco2008_Oct]_灌水_(最小生成树_Kruskal)
  5. jar包和war包差别
  6. 计算机考试长文档编辑,职称计算机考试:Powerpoint2003长文档1
  7. Linux的自动装机服务器搭建(持续优化)
  8. 腾讯位置服务教你轻松搞定微信发送位置功能
  9. 一寸Timing一寸金,寸金能买寸光阴——CCD
  10. [RelativeNAS] Relative Neural Architecture Search via Slow-Fast Learning
  11. 详解modprobe的用法
  12. 关于smtp发信的收件人to cc和bcc
  13. ## no data sources are configured to run this SQL and provide advanced code assistance.
  14. window_onload
  15. seo主导下的内容建设
  16. asp.net机动车信息管理系统
  17. 关于学习C语言的心得体会吧!
  18. 主流的基于SpringBoot的后台管理系统
  19. 搜索引擎JSONP接口
  20. BB10 处理NFC事件

热门文章

  1. THINKPADT400安装XP蓝屏
  2. 百度引流软文怎么写?如何利用软文从百度引流?
  3. Unity动态换装之Spine换装
  4. Python3正则表达式:match函数
  5. Vivado时钟之间的三种关系
  6. vue2 element使用笔记总结
  7. 【音频编码】AAC编码之FDK AAC
  8. educoder——面向对象程序设计java——实验实训——实验二 - 面向对象
  9. 设置win7一直以管理员身份运行
  10. 网站虚拟服务器共享ip与独立ip,误区解读:独立IP与共享IP虚拟主机哪个更好?...