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