意甲冠军:

两个人在一个人(1,1),一个人(N,N)

要人人搬家每秒的速度v。而一个s代表移动s左转方向秒

特别值得注意的是假设壁,反弹。改变方向

例如,在(1,1),采取的一个步骤,以左(1,0) 其实来(1,2)

然后假设两个人见面那么交换方向而且不再左转!

思路:

直接模拟。。

代码:

#include"cstdlib"
#include"cstdio"
#include"cstring"
#include"cmath"
#include"queue"
#include"algorithm"
#include"iostream"
using namespace std;
int move[4][2]= {{-1,0},{0,1},{1,0},{0,-1}};
int n;
struct node
{int x,y,f;int v,t;
};
int getfx(char x)
{if(x=='N') return 0;else if(x=='E') return 1;else if(x=='S') return 2;return 3;
}
int main()
{while(scanf("%d",&n),n){int m;char v[2];node a,b;a.x=a.y=1;b.x=b.y=n;scanf("%s%d%d",v,&a.v,&a.t);a.f=getfx(v[0]);scanf("%s%d%d",v,&b.v,&b.t);b.f=getfx(v[0]);scanf("%d",&m);for(int i=1; i<=m; i++){int xx,yy;xx=a.x+move[a.f][0]*a.v;yy=a.y+move[a.f][1]*a.v;if(xx<1||yy<1){a.f=(a.f+2)%4;if(xx<1) xx=1+move[a.f][0]*(1-xx);else yy=1+move[a.f][1]*(1-yy);}if(xx>n||yy>n){a.f=(a.f+2)%4;if(xx>n) xx=n+move[a.f][0]*(xx-n);else yy=n+move[a.f][1]*(yy-n);}a.x=xx;a.y=yy;xx=b.x+move[b.f][0]*b.v;yy=b.y+move[b.f][1]*b.v;if(xx<1||yy<1){b.f=(b.f+2)%4;if(xx<1) xx=1+move[b.f][0]*(1-xx);else yy=1+move[b.f][1]*(1-yy);}if(xx>n||yy>n){b.f=(b.f+2)%4;if(xx>n) xx=n+move[b.f][0]*(xx-n);else yy=n+move[b.f][1]*(yy-n);}b.x=xx;b.y=yy;if(a.x==b.x && a.y==b.y) swap(a.f,b.f);  //这里特别注意 交换完不转向else{if(i%a.t==0) a.f=(a.f-1+4)%4;if(i%b.t==0) b.f=(b.f-1+4)%4;}}printf("%d %d\n%d %d\n",a.x,a.y,b.x,b.y);}return 0;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

[模拟] hdu 4452 Running Rabbits相关推荐

  1. HDU 3282 Running Median 动态中位数,可惜数据范围太小

    Running Median Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...

  2. HDU 4745 Two Rabbits——最长回文子串

    这道题实际上是求一个序列的最长回文子串的长度,关于最长回文子串请看http://blog.csdn.net/hao_zong_yin/article/details/72730732 这道题的特殊性就 ...

  3. HDU 4745 Two Rabbits(区间dp)

    这道题相对来说,我觉得就有点考查读题了 读题时一定要细心,大致就是要你求一个回文子序列,递推方程很简单 if(a[i]==a[j]) g[i][j]=max(g[i][j],g[i+1][j-1]+2 ...

  4. 操作系统实验:虚拟存储器 (C语言实现) 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。

    一实验内容: 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺 页中断. 二.实验题目: 模拟分页式存储管理中硬件的地址转换和产生缺页中断. 用先进先出(FIFO)页面调度 ...

  5. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  6. linux如何mysql实现导出数据库,Linux下MySQL导入导出数据库

    linux下 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sq ...

  7. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

  8. 『ACM-算法-动态规划』初识DP动态规划算法

    一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...

  9. (转)dp动态规划分类详解

    dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...

最新文章

  1. 人工智能助力北京冬奥会
  2. 超分辨率:将背景和人脸分离 ,人脸、背景分别做增分后将人脸贴回背景图
  3. JBOSS+EJB3之Entity 开发实例
  4. 于ubuntu配置hadoop当问题
  5. 远程管理客户端--SCCM
  6. UI第九节——UIProgressView
  7. Mac上使用nginx访问本地文件夹报403的问题
  8. 照片打印预览正常打印空白_小米发布口袋照片打印机,可无墨打印3寸背胶照片...
  9. linux日志区别,你要了解的linux系统日志知识点都在这
  10. minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
  11. 快收下这份“数据库运作实践”秘制口诀
  12. python菜鸟入门_python菜鸟入门知识
  13. await原理 js_深入浅出node.js异步编程 及async await原理
  14. 数据苦库中的几种规范
  15. JS面向对象方法(二) 面向对象方法实现橱窗式图面预览以及放大功能
  16. 计算机科学概论教学,《计算机科学概论》理论教学大纲
  17. 电脑屏幕保护插件-Fliqlo
  18. 7z解压软件(小巧好用)。百度云下载链接
  19. oracle数据库interval使用,Oracle Interval类型
  20. scrum master_你能使我成为一个scrum master吗

热门文章

  1. 转载:JDBC连接数据库教程,postgreSQL
  2. 学习笔记:首次进行JUnit+Ant构建自动的单元测试(一)
  3. ssm整合之web.xml配置
  4. Shell脚本编程30分钟入门
  5. 伪分布式Hadoop2.x集群的搭建1
  6. nginx+php-fpm 502 bad gateway
  7. JQuery data API实现代码分析
  8. 图片切换效果2(定时+左右按钮)
  9. KP-ABE基于属性的加密加解密算法及Access Tree构建
  10. Java数组及二维数组初始化与赋值方法总结