AT_k2pc001_e4.虫歯(Cavity)

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

kyuridenamida 因为吃了太多零食,导致一颗牙齿蛀坏了一根神经。
由于这颗牙齿非常疼痛,他去看了牙医,牙医帮他治疗了牙齿神经中的 NN 个部位。

kyuridenamida 的牙齿神经如图 11 所示,是一棵深度为 KK 的完全二叉树。
(关于二叉树,可以参考 Wikipedia 页面 等。)

图 11

在表示他神经的二叉树中,深度为 ii、从左到右第 jj 个神经记作 (i,j)(i, j)(见图 22)。
此时,能够通过祖先一路向上到达根节点 (0,1)(0, 1) 的神经,被称为虫牙神经。
但是,如果某个虫牙神经的祖先已经被治疗,则该虫牙神经无法到达根节点 (0,1)(0, 1)。
另外,如果 (0,1)(0, 1) 本身没有被治疗,则认为 (0,1)(0, 1) 能够到达自身。

图 22

能够到达根节点的虫牙神经的总数被称为牙痛值。
你的任务是,根据给定的 kyuridenamida 的虫牙信息,告诉他牙痛值是多少。

请输出能够传递疼痛的神经数量,输出一行。
(注意,答案可能无法用 3232 位整数型表示。)

  • 1≤K≤501 \leq K \leq 50 —— 牙齿神经的深度
  • 0≤N≤1050 \leq N \leq 10^5 —— 已治疗的神经数量
  • 0≤pi≤K0 \leq p_i \leq K —— 第 ii 个已治疗神经的深度
  • 1≤qi≤2pi1 \leq q_i \leq 2^{p_i} —— 第 ii 个已治疗神经在深度 pip_i 时的位置
  • 若 pi=pjp_i = p_j,则 qi≠qjq_i \neq q_j 保证不会重复

对于 40%40\% 的数据,N≤1000N \leq 1000。

1
1
1 1
2
9
0
1023
3
2
1 2
3 7
8

输入输出样例 3 所对应的图如下。
其中,图中的蓝色圆圈表示已治疗的神经,红色叉号表示能够到达根节点的虫牙神经。

输入格式

第一行包含一个整数 KK,表示二叉树的深度。
第二行包含一个整数 NN,表示已治疗的神经数量。
接下来的 NN 行,每行包含两个整数 pip_i 和 qiq_i,表示第 ii 个已治疗神经的位置。

输出格式

输出一行,表示能够传递疼痛的神经数量。

说明/提示

无。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页