解题求助
有大佬能帮忙用C++解答一下这道
# U675422 遗迹守卫•符文能量塔
## 题目描述
你发现了一座古老的符文能量塔,它是一棵 n 个节点的树(编号 1~n),根节点为 1。每个节点 i 上有:
一个符文石,类型为 A~J(10种)
能量值 E[i](可为负数,表示消耗能量)
规则:
收集规则:从根出发,必须沿着树边向下移动(不能向上),可以选择跳过某些子树不进入
符文序列:有一个目标符文序列 P(长度 k ≤ 10),必须按顺序收集符文
1.例如 P = "AB" 表示必须先收集一个 A,再收集一个 B
2.同一个符文类型可以被多次收集,但只有第一次收集计入序列进度
3.收集到不需要的符文不影响进度(但能量照常计算)
能量计算:
1.初始能量 = 0
2.每经过一个节点(包括根),加上该节点的 E[i](可正可负)
3.能量不能为负数(如果某步后能量 < 0,该路径非法)
1.背包限制:最多可以跳过 M 个节点(即不访问,也不收集其符文,子树全部放弃)
2.跳过的节点不计能量,不收集符文
根节点不能跳过
目标:在满足符文收集顺序、能量始终非负、跳过节点数 ≤ M 的前提下,最大化路径总能量(最终能量值,不是收集数)。
输出:最大能量值,如果无法完成符文收集输出 -1。
## 输入格式
第一行输入一个n和M
第二行字符串P
接下来n行,每行一个字符串type[i],和一个整数E[i];
## 输出格式
一个整数,表示最大能量值。
##输入输出样例#1
###输入#1
```
3 0
A
A 5 2 3 0
B 10 0
C 20 0
```
###输出#1
```
5
```
##输入输出样例#2
###输入#2
```
3 0
A
A 5 2 3 0
B 10 0
C 20 0
```
###输出#2
```
-1
```
## 说明/提示
上面两组测试样例均为测试数据!
tips:1 ≤ n ≤ 100,0 ≤ M ≤ 10,1 ≤ |P| ≤ 8,-100 ≤ E[i] ≤ 100题目吗?
# U675422 遗迹守卫•符文能量塔
## 题目描述
你发现了一座古老的符文能量塔,它是一棵 n 个节点的树(编号 1~n),根节点为 1。每个节点 i 上有:
一个符文石,类型为 A~J(10种)
能量值 E[i](可为负数,表示消耗能量)
规则:
收集规则:从根出发,必须沿着树边向下移动(不能向上),可以选择跳过某些子树不进入
符文序列:有一个目标符文序列 P(长度 k ≤ 10),必须按顺序收集符文
1.例如 P = "AB" 表示必须先收集一个 A,再收集一个 B
2.同一个符文类型可以被多次收集,但只有第一次收集计入序列进度
3.收集到不需要的符文不影响进度(但能量照常计算)
能量计算:
1.初始能量 = 0
2.每经过一个节点(包括根),加上该节点的 E[i](可正可负)
3.能量不能为负数(如果某步后能量 < 0,该路径非法)
1.背包限制:最多可以跳过 M 个节点(即不访问,也不收集其符文,子树全部放弃)
2.跳过的节点不计能量,不收集符文
根节点不能跳过
目标:在满足符文收集顺序、能量始终非负、跳过节点数 ≤ M 的前提下,最大化路径总能量(最终能量值,不是收集数)。
输出:最大能量值,如果无法完成符文收集输出 -1。
## 输入格式
第一行输入一个n和M
第二行字符串P
接下来n行,每行一个字符串type[i],和一个整数E[i];
## 输出格式
一个整数,表示最大能量值。
##输入输出样例#1
###输入#1
```
3 0
A
A 5 2 3 0
B 10 0
C 20 0
```
###输出#1
```
5
```
##输入输出样例#2
###输入#2
```
3 0
A
A 5 2 3 0
B 10 0
C 20 0
```
###输出#2
```
-1
```
## 说明/提示
上面两组测试样例均为测试数据!
tips:1 ≤ n ≤ 100,0 ≤ M ≤ 10,1 ≤ |P| ≤ 8,-100 ≤ E[i] ≤ 100题目吗?
全部评论
相关推荐
点赞 评论 收藏
分享
查看25道真题和解析