两只兔子Tom和Jerry在一个n*n的格子区域跑,分别起始于(1,1)和(n,n),有各自的速度speed(格/小时)、初始方向dir(E、N、W、S)和左转周期turn(小时/次)。

各自每小时往E、N、W、S中一个方向跑speed格,每隔turn小时左转一次(即逆时针的下一个方向)。

行走中若第i步将碰壁,则第i步及剩余步改为原方向的相反方向(即折返)。

两只兔子若在第i小时到达同一点,则交换彼此的方向再走下一小时;若相遇时有兔子恰好该左转,则放弃此次左转。

第一眼像搜索,后来发现只是简单模拟~~

 #include <cstdio>
#include <algorithm>
using namespace std; struct Status
{
int x,y,d,h;//坐标,方向。当前时间
}st,sj; int n,k;
char dir_t,dir_j;
int speed_t,speed_j;
int turn_t,turn_j; void go_next(Status &s,int speed)
{
s.h++;
int cnt=;
switch(s.d)//由于speed<n,所以最多只碰壁折返一次,并且两只兔子不会在一小时内相遇两次(但其实可能在走向下一个格子的过程中遇到。。。)
{
case :
while(s.y<n&&cnt<speed){s.y++; cnt++;}
if(cnt<speed)
{
s.y-=speed-cnt;
s.d=;
}break;
case :
while(s.x>&&cnt<speed){s.x--; cnt++;}
if(cnt<speed)
{
s.x+=speed-cnt;
s.d=;
}break;
case :
while(s.y>&&cnt<speed){s.y--; cnt++;}
if(cnt<speed)
{
s.y+=speed-cnt;
s.d=;
}break;
case :
while(s.x<n&&cnt<speed){s.x++; cnt++;}
if(cnt<speed)
{
s.x-=speed-cnt;
s.d=;
}
}
} int main()
{
freopen("4452.txt","r",stdin);
while(scanf("%d",&n)!=EOF)
{
if(n==) break;
getchar();
scanf("%c",&dir_t);
scanf("%d%d",&speed_t,&turn_t);
getchar();
scanf("%c",&dir_j);
scanf("%d%d",&speed_j,&turn_j);
scanf("%d",&k); st.x=st.y=;
st.h=sj.h=;
sj.x=sj.y=n;
st.d=turn_t;
sj.d=turn_j;
switch(dir_t)
{
case 'E':st.d=;break;
case 'N':st.d=;break;
case 'W':st.d=;break;
case 'S':st.d=;break;
}
switch(dir_j)
{
case 'E':sj.d=;break;
case 'N':sj.d=;break;
case 'W':sj.d=;break;
case 'S':sj.d=;break;
} while(k--)
{
if(st.x==sj.x&&st.y==sj.y)
swap(st.d,sj.d);
else
{
if(st.h!=&&st.h%turn_t==)
st.d=(st.d+)%;
if(sj.h!=&&sj.h%turn_j==)
sj.d=(sj.d+)%;
}
go_next(st,speed_t);
go_next(sj,speed_j);
}
printf("%d %d\n",st.x,st.y);
printf("%d %d\n",sj.x,sj.y);
}
return ;
}

【HDU 4452 Running Rabbits】简单模拟的更多相关文章

  1. HDU 4452 Running Rabbits (模拟题)

    题意: 有两只兔子,一只在左上角,一只在右上角,两只兔子有自己的移动速度(每小时),和初始移动方向. 现在有3种可能让他们转向:撞墙:移动过程中撞墙,掉头走未完成的路. 相碰: 两只兔子在K点整(即处 ...

  2. hdu 4452 Running Rabbits 模拟

    Running RabbitsTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. [模拟] hdu 4452 Running Rabbits

    意甲冠军: 两个人在一个人(1,1),一个人(N,N) 要人人搬家每秒的速度v.而一个s代表移动s左转方向秒 特别值得注意的是假设壁,反弹.改变方向 例如,在(1,1),采取的一个步骤,以左(1,0) ...

  4. hdu 4858 容器的简单模拟

    我用临接表模拟容器超时 #include<stdio.h> #include<string.h> #include<vector> using namespace ...

  5. HDU 4772 Zhuge Liang&#39;s Password (简单模拟题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772 题面: Zhuge Liang's Password Time Limit: 2000/1000 ...

  6. 模拟 HDOJ 4552 Running Rabbits

    题目传送门 /* 模拟:看懂题意,主要是碰壁后的转向,笔误2次 */ #include <cstdio> #include <algorithm> #include <c ...

  7. (hdu step 8.1.6)士兵队列训练问题(数据结构,简单模拟——第一次每2个去掉1个,第二次每3个去掉1个.知道队伍中的人数&lt;=3,输出剩下的人 )

    题目: 士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. HDU 4509 湫湫系列故事——减肥记II (简单模拟)

    题意:一天一共有1440分钟,主人公每天有n件事要做,给出这n件事开始跟结束的时间,然后让你求出,空闲的时间的总分钟数是多少. 解题报告:简单模拟,只要开个一维数组标记那个每个分钟是否是有事的就可以了 ...

  9. java web学习总结(二十二) -------------------简单模拟SpringMVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

随机推荐

  1. SQL Server 索引的图形界面操作 <第十二篇>

    一.索引的图形界面操作 SQL Server非常强大的就是图形界面操作.关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL S ...

  2. IIS缺少文件的解决方法

    原文 http://cqyccmh.blog.163.com/blog/static/6068134720102211543944/ 今天解决了一个郁闷了很久的问题,之前实在没辙就只能重装系统,因为装 ...

  3. CSS发光边框文本框效果

    7,166 次阅读 ‹ NSH Blog 网页设计 CSS发光边框文本框效果 或许你看过Safari浏览器下,任何输入框都会有一个发光的蓝色边框,这不单纯只是蓝色边框而已,其实包含了许多CSS3技巧知 ...

  4. Combination Sum II 解答

    Question Given a collection of candidate numbers (C) and a target number (T), find all unique combin ...

  5. hdu 3874 Necklace(bit树+事先对查询区间右端点排序)

    Mery has a beautiful necklace. The necklace is made up of N magic balls. Each ball has a beautiful v ...

  6. CentOS7安全设置 yum-cron系统自动更新,firewalld防火墙简单使用

    PermitRootLogin nosystemctl restart sshd.service; yum -y install firewalld; systemctl start firewall ...

  7. 更新ORACLE数据时遇到锁死情况的处理

    我们在操作数据库的 时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以 ...

  8. Elasticsearch 安装与集群配置

    一.软件版本 操作系统:CentOS-6.5-x86_64 ES版本:5.0 主机:192.168.63.246 主机: 192.168.63.242 二.部署环境规划:   1. 需求:jdk版本: ...

  9. 棋盘覆盖(大数阶乘,大数相除 + java)

    棋盘覆盖 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...

  10. 两分钟让你明白cocos2dx的屏幕适配策略

    闲来无事,整理了一下cocos2dx的屏幕适配策略,本文适用于想快速理解cocos2dx适配的开发者. 我们先假设:以854 * 480 的屏幕为标准进行开发,当然,这也就是cocos2dx所说的设计 ...