List[] tree保存整颗树。

Map> edge保存边上的信息。

Map map保存path字符串的hashcode及val和。

char c = sc.next().charAt(0);读取字符。

import java.util.*;

public class Main {

static int[] val, ans;

static List[] tree;

static int P = 131;

static Map> edge;

static Map dfs(int root) {

Map map = new HashMap<>(); // path : val

map.put(0L, val[root]); // 加入当前节点的val

for(int son: tree[root]) {

Map smap = dfs(son);

for(long k : smap.keySet()) {

long key = k*P + edge.get(root).get(son);

map.put(key, map.getOrDefault(key, 0) + smap.get(k));

}

}

for(long key : map.keySet()) //选择val和最大的path 的val和。

ans[root] = Math.max(ans[root], map.get(key));

return map;

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt(), q = sc.nextInt();

val = new int[n+1];

tree = new List[n+1];

ans = new int[n+1];

for(int i=1; i <= n; i++) {

val[i] = sc.nextInt();

tree[i] = new ArrayList<>();

}

edge = new HashMap<>();

for(int i=1; i < n; i++) {

int a = sc.nextInt(), b = sc.nextInt();

char c = sc.next().charAt(0);

tree[a].add(b);

if(!edge.containsKey(a)) edge.put(a, new HashMap<>());

edge.get(a).put(b, c);

}

dfs(1);

while(q-- > 0)

System.out.println(ans[sc.nextInt()]);

}

}

宝石迷阵 java_宝石迷阵-2019头条笔试题相关推荐

  1. 2019面试/笔试题(算法题)总结

    实战链接:https://www.acwing.com/activity/content/8/ Google KickStart 2019 A轮 1. 训练 题目描述 作为一名学校足球教练,你的任务是 ...

  2. 头条笔试题:任务调度

    头条笔试题:任务调度 https://www.nowcoder.com/question/next?pid=8537279&qid=141057&tid=17430446 产品经理(P ...

  3. 百度2019校招笔试题

    百度2019校招笔试题 1. 探险安排 小明要为n个人计划一次火星的探险,其中一个重要的任务是为每个参与者安排食物.仓库里面有m个能用一天的食物包裹,每个食物包裹有不同的类型ai.每个人每天必须用且只 ...

  4. 如何利用扩展欧几里得算法求解不定方程_客户端不用的算法系列:从头条笔试题认识扩展欧几里得算法...

    难度较高,阅读时间大概 28 分钟 这是数论的第二篇,在<素数筛法>中,我们重温了素数这个数学定义,并且给出了区别于教科书上更高效的 Eratosthenes 筛法和欧拉线性筛.这篇文会从 ...

  5. 中科金财java_中科金财java开发工程师笔试题(带答案).docx

    中科金财java开发工程师笔试题(带答案).docx JAVA开发工程师笔试试题(请不要在试题上留任何痕迹,所有答案均写在答题纸上)一.编程题(共26分)1任意写出一种排序算法.(6分)PUBLICV ...

  6. 【今日头条2019,笔试题】机器人跳跃问题

    机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N + 1 N+1 N+1 座建筑--从 0 0 0 到 N N N 编号,从左到右排列. 编号为 0 0 0 的建筑高度为 0 ...

  7. 今日头条2019年笔试题 机器人跳跃问题

    机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 座建筑--从 0 到 NN编号,从左到右排列. 编号为 0 的建筑高度为 0 个单位,编号为 i 的建筑高度为 H(i) ...

  8. 2019年头条笔试题大锤升职

    ### 题目描述 我叫王大锤,是一家出版社的编辑. 我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误. 但是,优秀的人总能在平凡的工作中发现真理. 我发现了一个发现拼写错 ...

  9. 美团点评2019校招笔试题——前端开发方向(附答案)

    2019年美团点评前端开发岗位校招笔试题目,虽然不是最新的,但面试题万变不离其宗,掌握了想要考察的知识点才是重要的. 1.单选题 点击"计算"按钮后输出结果为( ) A 11.5 ...

最新文章

  1. 经常会提到的Java面试题
  2. delimiter mysql报错_MySql中的DELIMITER错误
  3. 【企业管理】优秀的管理者没有追随者,而是与大家一起奋斗
  4. Entity Framework Core 批处理语句
  5. Linux检测内存泄露的脚本
  6. 计算机网络找不到共享的打印机驱动程序,解决方案:连接共享打印机时如何解决“找不到驱动程序” _计算机硬件和网络_IT /计算机_...
  7. 可能是目前最全的《Android面试题及解析》(379页)
  8. Win10更新导致VMware Workstation Pro无法运行(解决+关闭Win10自动更新)
  9. argis利用gp工具打包tpk切片包
  10. 嵌入式系统主要应用于哪些行业中?
  11. java中String优化之intern()方法
  12. VMware虚拟机下载与安装(内附密钥)
  13. 《Learning Discriminative Features with Multiple Granularities for Person Re-Identification》论文阅读之MGN
  14. TC397之Memory Maps (MEMMAP)
  15. .net关于T4代码生成摸版的使用(.tt文件)
  16. 阿里云点播 web 播放器
  17. 网易游戏开发工程师实习面经
  18. 阻抗匹配之你不知道的变压器阻抗匹配
  19. 【渝粤题库】国家开放大学2021春2006经济数学基础12题目
  20. 系统运维常踩的坑(一)

热门文章

  1. 中国计算机发展史 博客,“博客”(Blog)在中国的发展历程
  2. buuctf 荷兰带宽数据泄露
  3. 江西彩礼到底有多高?我问了问身边的朋友们……
  4. ubuntu单网卡NAT配置局域网共享上网
  5. x86架构下的安卓虚拟化
  6. 机械跨考计算机调剂,机械跨考经济的一点心得
  7. 自抗扰控制入门之ESO篇(纯小白入门向和ESO数学表达式的推导)
  8. 以图搜图 相似图片搜索的原理(一)
  9. 教你将Linux配置为代理防火墙(转)
  10. HTTP常见请求头/响应头