luogu#P10510. 进制

    ID: 14454 远端评测题 1000ms 512MiB 尝试: 2 已通过: 1 难度: 2 上传者: 标签>模拟洛谷原创O2优化进制洛谷月赛

进制

题目背景

为了提供更加良好的区分度,相较于蓝桥杯国赛,本场比赛的所有程序设计题添加了额外样例,请在附件处下载。

其中,后缀名为 .in\bf{.in} 的文件为输入文件,.out\bf{.out} 的文件为输出文件。您可以使用这些额外样例检验自己的程序正确性。但我们不保证通过额外样例一定能取得您期望的分数。

此外,我们提供了相较蓝桥杯国赛更多档的部分分,以确保分数分布更为科学合理。

题目描述

小洛正在学习三进制。他定义三进制数为每一位只包括 0,1,20,1,2 三种数的无穷长的数字串 aa

与一般的三进制数不同的是,小洛的三进制数从左往右书写。例如,在常规表述下,44 的三进制表示为 (0000 0011)3(0000\ 0011)_3,而在小洛的三进制数表示下为 (1100 0000)3(1100\ 0000 \cdots)_3

小洛特别喜欢从 00 开始计数,因此他规定三进制的第 00 位为最左侧的那一数位。

下表给出了小洛的三进制数表示下,数字 3737 的最低的 88 位数位以及位权:

三进制数表示 11 00 11 00
位数 00 11 22 33 44 55 66 77
位权 303^0 313^1 323^2 333^3 343^4 353^5 363^6 373^7

现在小洛有一个十进制正整数 VV(显然,需要将其转化为小洛的三进制数表示),并且给定三种操作:

  • 操作一,将第 ii 位上的数进行操作:00 变为 1111 变为 2222 变为 00
  • 操作二,将第 ii 位上的数进行操作:00 变为 2211 变为 0022 变为 11
  • 操作三,将第 ii 位上的数进行操作:11 变为 2222 变为 1100 不变。

小洛一共要进行 qq 次操作。每次操作后,小洛需要得到三进制串代表的数值。请你告诉他。

如果对题意有不清晰之处,请查看样例解释。

输入格式

第一行输入两个正整数 V,qV,q

接下来 qq 行,每行一个操作,形如 op i

请注意,你需要将 VV 转化为三进制串并作为初始的三进制串。

输出格式

输出共 qq 行,第 ii 行表示第 ii 个操作后的答案。

4 3
1 1
2 0
1 2
7
6
15

提示

【样例解释】

初始时,V=4V=4,转化为小洛的三进制数为 1100 0000\texttt{1100 0000} \cdots,接下来进行了 33 次操作:

  • 将第 11 位上的数位从 11 变为 22,三进制数变为 1200 0000\texttt{1200 0000} \cdots,十进制下为 77
  • 将第 00 位上的数位从 11 变为 00,三进制数变为 0200 0000\texttt{0200 0000} \cdots,十进制下为 66
  • 将第 22 位上的数位从 00 变为 11,三进制数变为 0210 0000\texttt{0210 0000} \cdots,十进制下为 1515

【数据范围】

  • 对于 30%30\% 的数据,保证 V109V\leq 10^9
  • 对于另外 30%30\% 的数据,保证不含操作三。

对于所有数据,保证 0V10180\leq V\leq 10^{18}1q1051\leq q\leq 10^5,任意获取到的答案不超过 2×10182\times 10^{18}