宝石迷阵 java_宝石迷阵-2019头条笔试题
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头条笔试题相关推荐
- 2019面试/笔试题(算法题)总结
实战链接:https://www.acwing.com/activity/content/8/ Google KickStart 2019 A轮 1. 训练 题目描述 作为一名学校足球教练,你的任务是 ...
- 头条笔试题:任务调度
头条笔试题:任务调度 https://www.nowcoder.com/question/next?pid=8537279&qid=141057&tid=17430446 产品经理(P ...
- 百度2019校招笔试题
百度2019校招笔试题 1. 探险安排 小明要为n个人计划一次火星的探险,其中一个重要的任务是为每个参与者安排食物.仓库里面有m个能用一天的食物包裹,每个食物包裹有不同的类型ai.每个人每天必须用且只 ...
- 如何利用扩展欧几里得算法求解不定方程_客户端不用的算法系列:从头条笔试题认识扩展欧几里得算法...
难度较高,阅读时间大概 28 分钟 这是数论的第二篇,在<素数筛法>中,我们重温了素数这个数学定义,并且给出了区别于教科书上更高效的 Eratosthenes 筛法和欧拉线性筛.这篇文会从 ...
- 中科金财java_中科金财java开发工程师笔试题(带答案).docx
中科金财java开发工程师笔试题(带答案).docx JAVA开发工程师笔试试题(请不要在试题上留任何痕迹,所有答案均写在答题纸上)一.编程题(共26分)1任意写出一种排序算法.(6分)PUBLICV ...
- 【今日头条2019,笔试题】机器人跳跃问题
机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N + 1 N+1 N+1 座建筑--从 0 0 0 到 N N N 编号,从左到右排列. 编号为 0 0 0 的建筑高度为 0 ...
- 今日头条2019年笔试题 机器人跳跃问题
机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 座建筑--从 0 到 NN编号,从左到右排列. 编号为 0 的建筑高度为 0 个单位,编号为 i 的建筑高度为 H(i) ...
- 2019年头条笔试题大锤升职
### 题目描述 我叫王大锤,是一家出版社的编辑. 我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误. 但是,优秀的人总能在平凡的工作中发现真理. 我发现了一个发现拼写错 ...
- 美团点评2019校招笔试题——前端开发方向(附答案)
2019年美团点评前端开发岗位校招笔试题目,虽然不是最新的,但面试题万变不离其宗,掌握了想要考察的知识点才是重要的. 1.单选题 点击"计算"按钮后输出结果为( ) A 11.5 ...
最新文章
- 经常会提到的Java面试题
- delimiter mysql报错_MySql中的DELIMITER错误
- 【企业管理】优秀的管理者没有追随者,而是与大家一起奋斗
- Entity Framework Core 批处理语句
- Linux检测内存泄露的脚本
- 计算机网络找不到共享的打印机驱动程序,解决方案:连接共享打印机时如何解决“找不到驱动程序” _计算机硬件和网络_IT /计算机_...
- 可能是目前最全的《Android面试题及解析》(379页)
- Win10更新导致VMware Workstation Pro无法运行(解决+关闭Win10自动更新)
- argis利用gp工具打包tpk切片包
- 嵌入式系统主要应用于哪些行业中?
- java中String优化之intern()方法
- VMware虚拟机下载与安装(内附密钥)
- 《Learning Discriminative Features with Multiple Granularities for Person Re-Identification》论文阅读之MGN
- TC397之Memory Maps (MEMMAP)
- .net关于T4代码生成摸版的使用(.tt文件)
- 阿里云点播 web 播放器
- 网易游戏开发工程师实习面经
- 阻抗匹配之你不知道的变压器阻抗匹配
- 【渝粤题库】国家开放大学2021春2006经济数学基础12题目
- 系统运维常踩的坑(一)