全部评论
你知道的,英语不是我的强项
return yes先秒一半
通过观察身边的同学,发现打acm的,男生大部分是原批或者b哥,女生是抽象女,纯恶意😅😅
奖励你玩两小时原神😡
我感觉…是不是要上dp?
感觉一眼dp,遍历一遍,用dp[i]表示在i位置的最大高度,dp[0]=h,先考穿过风场,如果原地是风场那么dp[i]=max(dp[i],h),然后考虑不穿过特殊点的情况,那就是dp[i+vx]=max(dp[i+vx],dp[i]-vy),最后考虑穿过风环的情况,也就是dp[i+t*vx*2]=max(dp[i+t*vx*2],dp[i]-t*vy),这题边界条件给的很宽,看起来没多少特判
兔兔伯爵出击!
高手
6
我导 这么难
我承认不会原神了
阿里lazada春招,androidios客户端(广深)1个hc,接受后端前端转移动端。要求985 211,毕业时间23年10月到24年九月,要求过6级。 https://aidc-jobs.alibaba.com/campus/qrcode/home?code=8ynRO17ya0V_SBjQJv61PX2JVQMR6tVirrTV28521y4%3D 用alibaba替代*号即可投递 https://www.nowcoder.com/feed/main/detail/e60f7f6452814e378376ba0f1afec1bf?sourceSSR=users
需要的友友可以看我首页,米哈游有大量内推,实习正式都有,可以咨询
我中专 看不懂
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();
}
}
相关推荐