Bouncy Ball
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相关推荐
- F. Bouncy Ball(Codeforces Round 859 (Div. 4))
题目链接:Problem - F - Codeforceshttps://codeforces.com/contest/1807/problem/F 题意:给你一个n*m大小的网格,再给你一个起始点和 ...
- Web全栈工程师技能树梳理
FSE-SKILL-TREE Web全栈工程师技能树梳理 各个分支正在细化中,欢迎Star.PR. 点击链接加入群[Web全栈QQ群]:https://jq.qq.com/?_wv=1027& ...
- CUDA Samples: green ball
以下CUDA sample是分别用C++和CUDA实现的生成的绿色的球图像,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第五章,各个文件内容 ...
- Aizu - 0033 Ball
这题书上写让用DFS--可是这一比较就出来啊-- Ball Aizu - 0033 図のように二股に分かれている容器があります.1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A か ...
- AOJ0033 Ball【贪心+序列处理】
図のように二股に分かれている容器があります.1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A から落とし.左の筒 B か右の筒 C に玉を入れます.板 D は支点 E を中心に左右 ...
- hdu-4811 Ball
题目链接: Ball Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu 1556 Color the ball
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- Color the ball
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- ecies算法c语言实现,Bouncy Castle算法库中ECIES算法调用示例
JRE8 + jce_policy-8, Bouncy Castle 1.50环境下调试通过 import java.security.KeyPair; import java.security.Ke ...
最新文章
- kotlin ++ --_顺便说一句-探索Kotlin代表团
- sont表示元素在存入集合时进行了排序,数据遍历的结果是按某个排序规则输出的
- php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)
- CRLF line terminators导致shell脚本报错:command not found
- 取消计算机关机设置,旧驱动程序教您如何设置和取消计算机的自动关机命令
- 使用Ehcache+Redis实现分布式缓存
- [Leetcode] 第289题 生命游戏
- Flutter路由管理代码这么长长长长长,阿里工程师怎么高效解决?(实用)
- 通过计算机网络进行的商务活动包括,电子商务练习题及答案
- java.lang.math.abs_java.lang.StrictMath.abs(int a)方法实例
- Mysql事务,并发问题,锁机制-- 幻读、不可重复读--专题
- Power BI Desktop报告中的Web URL配置
- 异序二分查找 二分查找方程根 二分查找重复元素最后一个
- 周立功USBCAN资料分享
- 各种模拟器端口号及模拟器连接方式
- 2021-06-16 解决MDK5使用STLINK下载不进去程序报错的问题
- Springboot启动提示:com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException UNAVAILAB
- 通过电阻色环识别(固定)电阻阻值的方法
- 机器人操作系统入门(一)ROS简介
- MFC之路 串口通信篇(之三)
热门文章
- python怎么做https请求_Python使用https请求的方法
- Deepmind AMA:关于最强ALphaGo如何炼成的真心话,都在这里了!
- 7.26模拟考试总结
- 微型计算机基础概述,微型计算机原理概述及基础知识
- 手工编程实现词法分析器java_编译原理——词法分析器实现
- Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍
- 忙中偷闲 2020.12.23日记
- Beehive:用于修复分布式存储系统中多个故障的纠删码
- java 和grails_java – Grails值得吗?
- 使用 React、NodeJS 和 AI 创建简历生成器