Bouncy Ball

题意:

给一个n * m 的矩形和一个小球,小球的初始位置为(sx,sy),如果小球撞到墙壁,会以反弹。小球的初始方向为d,有四种方向:
“DR”,“DL”,“UR”,“UL”。其中D代表向下,U代表向上,R代表向右。
L代表向左。举个栗子,“DR"撞到下边界会反弹为"UR”,如果当前
的运动状态为"UR",那么下一步小球的位置为(sx - 1, sy + 1)。
问小球经过多少次反弹能到达(ex,ey)。如果不能到达,输出-1。

思路:

因为每个点有四种方向可以走,所以小球最多走4 * n * m次,所以只要模拟4 * n * m次运动即可。

代码:


/*************************************************************************> File Name: a.cpp> Author: Beans> Mail: 3112748286@qq.com > Created Time: 2023/5/12 13:03:36************************************************************************/
#include <iostream>
#define int long long
#define endl '\n'using namespace std;int t, n, m, sx, sy, ex, ey;
string d;
int dx, dy;void solve(){cin >> n >> m >> sx >> sy >> ex >> ey >> d;if(d[0] == 'D') dx = 1;else    dx = -1;if(d[1] == 'R') dy = 1;else    dy = -1;int ti = n * m * 4;int ans = 0;while(ti -- ){if(sx == ex && sy == ey){cout << ans << endl;return;}bool ok = false;if(sx == n && dx == 1){dx = -1, ok = true;}if(sx == 1 && dx == -1){dx = 1, ok = true;}if(sy == m && dy == 1){dy = -1, ok = true;}if(sy == 1 && dy == -1){dy = 1, ok = true;}sx += dx, sy += dy;if(ok)  ans ++ ;}cout << -1 << endl;
}signed main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> t;while(t -- )    solve();
}

Bouncy Ball相关推荐

  1. F. Bouncy Ball(Codeforces Round 859 (Div. 4))

    题目链接:Problem - F - Codeforceshttps://codeforces.com/contest/1807/problem/F 题意:给你一个n*m大小的网格,再给你一个起始点和 ...

  2. Web全栈工程师技能树梳理

    FSE-SKILL-TREE Web全栈工程师技能树梳理 各个分支正在细化中,欢迎Star.PR. 点击链接加入群[Web全栈QQ群]:https://jq.qq.com/?_wv=1027& ...

  3. CUDA Samples: green ball

    以下CUDA sample是分别用C++和CUDA实现的生成的绿色的球图像,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第五章,各个文件内容 ...

  4. Aizu - 0033 Ball

    这题书上写让用DFS--可是这一比较就出来啊-- Ball Aizu - 0033 図のように二股に分かれている容器があります.1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A か ...

  5. AOJ0033 Ball【贪心+序列处理】

    図のように二股に分かれている容器があります.1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A から落とし.左の筒 B か右の筒 C に玉を入れます.板 D は支点 E を中心に左右 ...

  6. hdu-4811 Ball

    题目链接: Ball Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. hdu 1556 Color the ball

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. Color the ball

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  9. ecies算法c语言实现,Bouncy Castle算法库中ECIES算法调用示例

    JRE8 + jce_policy-8, Bouncy Castle 1.50环境下调试通过 import java.security.KeyPair; import java.security.Ke ...

最新文章

  1. kotlin ++ --_顺便说一句-探索Kotlin代表团
  2. sont表示元素在存入集合时进行了排序,数据遍历的结果是按某个排序规则输出的
  3. php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)
  4. CRLF line terminators导致shell脚本报错:command not found
  5. 取消计算机关机设置,旧驱动程序教您如何设置和取消计算机的自动关机命令
  6. 使用Ehcache+Redis实现分布式缓存
  7. [Leetcode] 第289题 生命游戏
  8. Flutter路由管理代码这么长长长长长,阿里工程师怎么高效解决?(实用)
  9. 通过计算机网络进行的商务活动包括,电子商务练习题及答案
  10. java.lang.math.abs_java.lang.StrictMath.abs(int a)方法实例
  11. Mysql事务,并发问题,锁机制-- 幻读、不可重复读--专题
  12. Power BI Desktop报告中的Web URL配置
  13. 异序二分查找 二分查找方程根 二分查找重复元素最后一个
  14. 周立功USBCAN资料分享
  15. 各种模拟器端口号及模拟器连接方式
  16. 2021-06-16 解决MDK5使用STLINK下载不进去程序报错的问题
  17. Springboot启动提示:com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException UNAVAILAB
  18. 通过电阻色环识别(固定)电阻阻值的方法
  19. 机器人操作系统入门(一)ROS简介
  20. MFC之路 串口通信篇(之三)

热门文章

  1. python怎么做https请求_Python使用https请求的方法
  2. Deepmind AMA:关于最强ALphaGo如何炼成的真心话,都在这里了!
  3. 7.26模拟考试总结
  4. 微型计算机基础概述,微型计算机原理概述及基础知识
  5. 手工编程实现词法分析器java_编译原理——词法分析器实现
  6. Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍
  7. 忙中偷闲 2020.12.23日记
  8. Beehive:用于修复分布式存储系统中多个故障的纠删码
  9. java 和grails_java – Grails值得吗?
  10. 使用 React、NodeJS 和 AI 创建简历生成器