AT_k2pc001_h2.虫歯(Cavity)

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

※截至 20:22,集合评测似乎未能正常运行。修正后将进行重新评测。(每个测试用例显示的结果应该是正确的)

※20:35 已修正集合评测数据并进行了重新评测。原本看似正确的提交也有可能被判为错误。请注意确认。给您带来不便,敬请谅解。
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 的蛀牙信息,计算并输出他的牙痛值。

请输出能够传递疼痛的神经的数量,输出一行。
(注意,答案可能超出 32 位整数范围。)

  • 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 个已治疗神经的位置。

输出格式

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

输入输出样例

  • 输入#1

    1
    1
    1 1

    输出#1

    2
  • 输入#2

    9
    0

    输出#2

    1023
  • 输入#3

    3
    2
    1 2
    3 7

    输出#3

    8

说明/提示

无。

由 ChatGPT 4.1 翻译

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

首页