zhangjinxuan 发表于 2023-6-3 09:54:24

【梦想星际舰队】第二关 修复破损的宇航服【鱼币】

本帖最后由 zhangjinxuan 于 2023-6-6 08:57 编辑

上一关传送门:第一关 脱离地球的障碍





第二关 修复破损的宇航服

终于,你们在最后的 10-114514 毫秒拯救了 zhangjinxuan,并把他拉回了梦想星际舰。

但是,你们发现,zhangjinxuan 虽然只是受了点伤,宇航服却破损的十分严重。

如果不修复,那么 zhangjinxuan 以后就无法执行出舱任务,为了之后的任务顺利进行,你能帮助 zhangjinxuan 修复破损的宇航服吗?

宇航服是一个由 0 和 1 组成的一个字符串,就像这样:

001010011110100101100011111

你现在得使用电脑打字的方式来修复这个宇航服,即打出这个宇航服对应的 01 串即可,越快越好!

这台电脑上有三个按键,分别是 0, Shift, 和 1 Lock,一开始, 1 Lock 为未激活的,你可以执行以下操作:

1. 使用 X 微秒时间按下 0 键,如果 1 Lock 是激活状态,那么就会打印 1,否则只会打印 0;
2. 使用 Y 微秒时间按下 Shift + 1 键,如果 1 Lock 是激活状态,那么屏幕上打印 0,否则只会打印 1;
3. 使用 Z 微秒时间按下 1 Lock 键,1 Lock 的激活状态取反,请注意,这不会打印任何字符。

这是不是很像 Caps Lock 和 Shift 的规则?好了,就是这个规则,现给定 X, Y, Z 和修复宇航服要打印的 01 串 S,请输出修复宇航服的最短用时(微妙)。

Sample 1

Input

1 3 3
1101


Output

9


Explain

以下操作序列使屏幕上的字符串等于中的 1101,用时9毫秒,这是最短的可能。

花费 Z(=3)毫秒按下 1 Lock 键。1 Lock 激活。
花费 X(=1)毫秒按下“0”键,打印 1。
花费 X(=1)毫秒来按下“0”键,打印 1。
花费 Y(=3)毫秒,以同时按下Shift键和“0”键,打印 0,因为 1 Lock 成激活状态,Shift 让 1 Lock 暂时成为未激活状态。
花费 X(=1)毫秒来按下“0”键。打印 1。

Input

1 2 4
001010011110100101100011111


Output

40

好了,现在请你编写解决这个问题的程序,请尽快完成任务!

本题非原创,改编于:https://atcoder.jp/contests/abc303/tasks/abc303_d。
本题尚未加入梦想 OJ。

参考答案

**** Hidden Message *****

选手答案

暂无,允许使用 gpt,但是必须注明思路。


下一关:第三关 运输物资

sfqxx 发表于 2023-6-3 13:32:41

本帖最后由 sfqxx 于 2023-6-3 13:35 编辑

x, y, z = map(int, input().split())
s = input()

INF = (1 << 60)#2^60
dp = [ for j in range(len(s) + 1)]
dp = 0
dp = z
for i in range(len(s)):
    if s == '1':
      dp = min(dp + y, dp + z + y)#直接看帖子题解
      dp = min(dp + z + x, dp + x)
    else:
      dp = min(dp + x, dp + z + x)
      dp = min(dp + z + y, dp + y)

print(min(dp, dp))

思路:

zhangjinxuan 发表于 2023-6-3 09:55:06

@高山 @sfqxx @元豪 @tommyyu @额外减小 @不二如是 {:10_256:}

陶远航 发表于 2023-6-3 09:56:04

求助帖?难道不是技术交流???

zhangjinxuan 发表于 2023-6-3 09:58:07

陶远航 发表于 2023-6-3 09:56
求助帖?难道不是技术交流???

求助帖只是为了方便给那些回答问题的鱼油奖励而已。

sfqxx 发表于 2023-6-3 10:09:04

链接打不开

zhangjinxuan 发表于 2023-6-3 10:15:53

sfqxx 发表于 2023-6-3 10:09
链接打不开

这个网站经常遭受黑客的攻击,可能会存在什么 502,504 等错误。

zhangjinxuan 发表于 2023-6-3 10:16:34

sfqxx 发表于 2023-6-3 10:09
链接打不开

这个网站经常受攻击,偶尔 502,504 很正常

元豪 发表于 2023-6-3 10:58:19

唉,不会,看看题解{:10_269:}

liuhongrun2022 发表于 2023-6-3 11:35:35

同上,不会

sfqxx 发表于 2023-6-3 13:05:52

来个入门题{:10_269:}

sfqxx 发表于 2023-6-3 13:06:06

zhangjinxuan 发表于 2023-6-3 10:16
这个网站经常受攻击,偶尔 502,504 很正常

原来如此

zhangjinxuan 发表于 2023-6-3 13:10:56

sfqxx 发表于 2023-6-3 13:05
来个入门题

no{:10_256:}

sfqxx 发表于 2023-6-3 13:11:55

zhangjinxuan 发表于 2023-6-3 13:10
no

555{:10_266:}

sfqxx 发表于 2023-6-3 13:12:28

zhangjinxuan 发表于 2023-6-3 13:10
no

抄抄代码{:10_256:}

zhangjinxuan 发表于 2023-6-3 13:15:00

sfqxx 发表于 2023-6-3 13:12
抄抄代码

请注明你的思路,不然视为作弊。

zhangjinxuan 发表于 2023-6-3 13:35:38

本帖最后由 zhangjinxuan 于 2023-6-3 13:38 编辑

sfqxx 发表于 2023-6-3 13:32
思路:

不错不错{:10_256:}

为什么我们结果要取 min(dp, dp) 呢{:10_277:}

为什么这道题可以使用动态规划{:10_291:}

sfqxx 发表于 2023-6-3 13:36:21

zhangjinxuan 发表于 2023-6-3 13:35
不错不错

为什么我们要从 4 个状态去转移,我不是我说的 2 个状态呢,在这中间,有多少的转 ...

好问题{:10_265:}

我想想

因为这道题需要动态规划,所以要用动态规划{:10_256:}

sfqxx 发表于 2023-6-3 13:37:04

zhangjinxuan 发表于 2023-6-3 13:35
不错不错

为什么我们要从 4 个状态去转移,我不是我说的 2 个状态呢,在这中间,有多少的 ...

不影响AC,我暴力都可以解决

zhangjinxuan 发表于 2023-6-3 13:37:07

sfqxx 发表于 2023-6-3 13:36
好问题

我想想


你想一想,动态规划的基本条件是什么,这道题满足动态规划的基本条件吗{:10_277:}
页: [1] 2 3
查看完整版本: 【梦想星际舰队】第二关 修复破损的宇航服【鱼币】