关注
import java.util.Scanner;
public class AmberChallenge {
static final int MAX_WIND_FIELDS = 5;
static int[] windFields = new int[MAX_WIND_FIELDS];
static int windFieldCount = 0;
static int[] windRings = new int[MAX_WIND_FIELDS];
static int windRingCount = 0;
static boolean canReachDestination(int d, int h, int x, int y, int t,
int currentDistance, int currentHeight, int speedMultiplier,
int windRingRemainingTime) {
// 如果安柏落水或者飞过了目的地,返回false
if (currentHeight <= 0 || currentDistance > d) {
return false;
}
// 如果安柏到达了目的地,返回true
if (currentDistance == d && currentHeight == 0) {
return true;
}
// 如果安柏在风环效果中
if (windRingRemainingTime > 0) {
// 继续前进,保持当前的速度倍率
if (canReachDestination(d, h, x, y, t,
currentDistance + x * speedMultiplier,
currentHeight - y,
speedMultiplier,
windRingRemainingTime - 1)) {
return true;
}
} else {
// 如果不在风环效果里,检查是否可以进入一个风环
for (int i = 0; i < windRingCount; i++) {
if (currentDistance == windRings[i]) {
// 进入风环,速度倍率设置为2,重新设置风环效果时间
if (canReachDestination(d, h, x, y, t,
currentDistance,
currentHeight,
2,
t)) {
return true;
}
}
}
}
// 检查是否可以进入风场,如果可以,将高度设置为最大值
for (int i = 0; i < windFieldCount; i++) {
if (currentDistance == windFields[i]) {
if (canReachDestination(d, h, x, y, t,
currentDistance + x,
h,
speedMultiplier,
windRingRemainingTime)) {
return true;
}
}
}
// 没有进入风场也没有风环效果,正常飞行一次
return canReachDestination(d, h, x, y, t,
currentDistance + x,
currentHeight - y,
speedMultiplier,
windRingRemainingTime);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int testCases = scanner.nextInt();
while (testCases-- > 0) {
int d = scanner.nextInt(); // 目的地水平距离
int h = scanner.nextInt(); // 初始高度
int x = scanner.nextInt(); // 水平飞行速度
int y = scanner.nextInt(); // 垂直下降速度
int t = scanner.nextInt(); // 风环效果时间
windFieldCount = scanner.nextInt();
for (int i = 0; i < windFieldCount; i++) {
windFields[i] = scanner.nextInt();
}
windRingCount = scanner.nextInt();
for (int i = 0; i < windRingCount; i++) {
windRings[i] = scanner.nextInt();
}
boolean result = canReachDestination(d, h, x, y, t, 0, h, 1, 0);
System.out.println(result ? "YES" : "NO");
}
scanner.close();
}
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客31544035...:最近hc 少,基本上不怎么缺人,两段大厂实习试着投了投也没啥面试
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 27届学院二本,袋鼠云->快手->腾讯wxg,25年末聊聊我的前端之路2.1W
- 2... 本科五段大厂实习,秋招五个offer,我的校招结束了5610
- 3... 岁末论道:谁才是牛客 2025 最强修仙者?5450
- 4... 适可而止吧!你就是“烂泥”5291
- 5... 大四双非水产专业上岸阿里后端(五)4703
- 6... 我的世界观,就是对抗优绩主义的武器3135
- 7... 27双非杀入字节!2645
- 8... 实习被“放养”零产出,该及时止损还是继续苟着?1333
- 9... 日常实习-小红书后端java二面1311
- 10... 如果2025的我是强化学习,那最终奖励会是什么?1263
正在热议
更多
# 实习没人带,苟住还是跑路? #
1733次浏览 59人参与
# 过年期间可能会经历的尴尬瞬间 #
48475次浏览 311人参与
# 元旦假期你打算怎么过 #
2375次浏览 79人参与
# 工作中的卑微时刻 #
29740次浏览 186人参与
# 我们是不是被“优绩主义”绑架了? #
3977次浏览 166人参与
# 如何看待应届生身份? #
210715次浏览 2233人参与
# 从夯到拉,评价编程语言 #
27739次浏览 148人参与
# 多益网络工作体验 #
60118次浏览 299人参与
# 牛客2025仙途报告 #
20049次浏览 316人参与
# 机械制造面试记录 #
299781次浏览 3143人参与
# 实习心态崩了 #
96517次浏览 494人参与
# 华为工作体验 #
277135次浏览 1355人参与
# 查收我的offer竞争力报告 #
263718次浏览 1644人参与
# 你有哪些缓解焦虑的方法? #
44742次浏览 873人参与
# 找工作,行业重要还是岗位重要? #
88176次浏览 1767人参与
# 华为池子有多大 #
154484次浏览 867人参与
# 今年你最想重开的一场面试是? #
17189次浏览 171人参与
# 参加过提前批的机械人,你们还参加秋招么 #
105285次浏览 1647人参与
# 牛友打假中心 #
109797次浏览 2699人参与
# 牛友们的论文几号送审 #
63212次浏览 835人参与

