G

这个问题不好直接做,考虑转化为一个好求的问题。

原问题等价于求最小的 \(x\) 使得(或判断无解):

\[\begin{aligned}
\frac{2}{9}(10 ^ x - 1) &\equiv 0 \pmod{k} \\
2(10 ^ x - 1) &\equiv 0 \pmod{9k} \\
10 ^ x &\equiv 1 \pmod{\frac{9k}{\gcd(k, 2)}}
\end{aligned}
\]

令 \(p = \frac{9k}{\gcd(k, 2)}\),当 \(\gcd(10, p) \ne 1\) 时原问题显然无解。

否则等价于求 \(10\) 在模 \(p\) 意义下的阶,一定有 \(ord_{p} 10 \mid \varphi(p)\),求出 \(\varphi(p)\) 后暴力枚举约数即可,复杂度 \(\mathcal{O}(T\sqrt{n} \log n)\)。

H

考虑如何判定一颗二叉树是合法的,有如下观察:

  • 每个位置上为 \(1\) 的数(除了根)必须要向上移动。

因此原问题中的移动次数 \(n - 1\) 其实是这个移动问题最优情况的答案下界,考虑何时满足这种情况:

  • 根节点上数字为 \(1\)。
  • 若一个节点上为 \(1\) 那么它的 \(2\) 级祖先必有至少一个节点上为 \(1\)。

考虑 \(\rm dp\),令 \(f_i, g_i\) 分别表示 \(i\) 个点,根节点填的数字为 \(0/1\) 的合法方案,枚举左右子树大小转移:

\[f_i = \sum\limits_{j < i} (f_j + g_j) \times (f_{i - j - 1} + g_{i - j - 1})
\]
\[g_i = \sum\limits_{j \le i} f_j \times f_{i - j}
\]

边界我们考虑人为构造成 \(f_0 = 1, g_0 = 0\)。

注意到转移是卷积的形式,于是我们构造两个关于 \(f, g\) 的 \(\mathrm{OGF}:F(x), G(x)\),于是有:

\[\begin{aligned}
& \ \ \ \ \ \ \ \ \ F(x) = x(F(x) + G(x)) ^ 2 + 1, G(x) = F ^ 2(x) - 1 \\
&\Longleftrightarrow F(x) = x(F ^ 2(x) + F(x) - 1) ^ 2 + 1
\end{aligned}
\]

将两边展开后为四次方程,很难求根展开,考虑换一个方式求解通项公式。

注意到 \(x\) 出现仅出现一次且为一次式,不妨借助拉格朗日反演,考虑如此构造求出 \(F(x)\) 的复合逆 \(G(x)\):

\[\begin{aligned}
& \ \ \ \ \ \ \ \ G(F(x)) = x = \frac{F(x) - 1}{(F ^ 2(x) + F(x) - 1) ^ 2} \\
&\Longleftrightarrow G(x) = \frac{x - 1}{(x ^ 2 + x - 1) ^ 2}
\end{aligned}
\]

应用拉格朗日反演公式,有:

\[\begin{aligned}
[x ^ n]F(x) &= \frac{1}{n}[x ^ {n - 1}]\left(\frac{x}{G(x)}\right) ^ n \\
&= \frac{1}{n}[x ^ {n - 1}]\left(\frac{x(x ^ 2 + x - 1) ^ 2}{x - 1}\right) ^ n
\end{aligned}
\]

注意到后半部分分母部分不好处理,发现问题来源在于 \(G(x)\) 分子为 \(x - 1\) 与 \(\frac{x}{G(x)}\) 没有抵消,于是考虑换元:

\[H(x) = F(x) - 1 = x((H(x) + 1) ^ 2 + H(x)) ^ 2
\]

可以用同样的方法构造出 \(H(x)\) 的复合逆 \(G(x) = \frac{x}{((x + 1) ^ 2 + x) ^ 2} = \frac{x}{(x ^ 2 + 3x + 1) ^ 2}\),此时应用拉格朗日反演公式:

\[\begin{aligned}
[x ^ n]F(x) &= \frac{1}{n}[x ^ {n - 1}]\left(\frac{x}{G(x)}\right) ^ n \\
&= \frac{1}{n}[x ^ {n - 1}]\left(x ^ 2 + 3x + 1\right) ^ {2n} \\
&= \frac{1}{n} \sum\limits_i ^ {\lfloor \frac{n - 1}{2} \rfloor} \dbinom{2n}{i ~~~ n - 2i - 1 ~~~ n + i + 1}3 ^ {n - 2i - 1}\\
\end{aligned}
\]

直接计算即可,复杂度 \(\mathcal{O}(n)\)。

ABC222 部分简要题解的更多相关文章

  1. Noip 2014酱油记+简要题解

    好吧,day2T1把d默认为1也是醉了,现在只能期待数据弱然后怒卡一等线吧QAQ Day0 第一次下午出发啊真是不错,才2小时左右就到了233,在车上把sao和fate补掉就到了= = 然后到宾馆之后 ...

  2. Tsinghua 2018 DSA PA2简要题解

    反正没时间写,先把简要题解(嘴巴A题)都给他写了记录一下. upd:任务倒是完成了,我也自闭了. CST2018 2-1 Meteorites: 乘法版的石子合并,堆 + 高精度. 写起来有点烦貌似. ...

  3. Codeforces 863 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 简要题解?因为最后一题太毒不想写了所以其实是部分题解... A题 传送门 题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数 ...

  4. HNOI2018简要题解

    HNOI2018简要题解 D1T1 寻宝游戏 题意 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为 ...

  5. JXOI2018简要题解

    JXOI2018简要题解 T1 排序问题 题意 九条可怜是一个热爱思考的女孩子. 九条可怜最近正在研究各种排序的性质,她发现了一种很有趣的排序方法: Gobo sort ! Gobo sort 的算法 ...

  6. BJOI2018简要题解

    BJOI2018简要题解 D1T1 二进制 题意 pupil 发现对于一个十进制数,无论怎么将其的数字重新排列,均不影响其是不是 \(3\) 的倍数.他想研究对于二进制,是否也有类似的性质. 于是他生 ...

  7. CQOI2018简要题解

    CQOI2018简要题解 D1T1 破解 D-H 协议 题意 Diffie-Hellman 密钥交换协议是一种简单有效的密钥交换方法.它可以让通讯双方在没有事先约定密钥(密码)的情况下,通过不安全的信 ...

  8. AtCoder ExaWizards 2019 简要题解

    AtCoder ExaWizards 2019 简要题解 Tags:题解 link:https://atcoder.jp/contests/exawizards2019 很水的一场ARC啊,随随便便就 ...

  9. Comet OJ - Contest #2 简要题解

    Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{( ...

随机推荐

  1. C++模拟python风格的print函数--打印vector,map,list等结构

    // 最基本实现 template<typename T> static void print(T t) { std::cout << t; } // 处理 std::pair ...

  2. 在linux(deepin)系统下查看当前ip地址与用户名

    在linux(deepin)系统下查看当前ip地址与用户名 查看当前ip地址 方式一: hostname -I 方式二: ifconfig -a 如下图所示: 其中192.168.11.66即为当前系 ...

  3. 搞一下vue生态,从vuex开始

    Vuex vuex 是专门帮助vue管理的一个js库,利用了vue.js中细粒度数据响应机制来进行高效的状态更新. vuex核心就是store,store就是个仓库,这里采用了单一的store状态树, ...

  4. Storm集群安装Version1.0.1

    Storm集群安装,基于版本1.0.1, 使用apache-storm-1.0.1.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软件 运行进程 nimbus zdh-237 sto ...

  5. Linux-saltstack-2 saltstack的基本使用

    @ 目录 一.salt命令的基本使用 1.基本语法 例子: 2.salt的常用参数 (1)-S(大写):通过IP或者是网段匹配被管理主机 (2)-E:通过正则匹配主机 (3)-L: 匹配多个主机 (4 ...

  6. js_给元素增加或移除style属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. python 面向对象:封装---对象的属性可以是另一个类创建的对象

    # 对象封装:对象的属性可以是另一个类创建的对象 # 案例需求: # 1.士兵许三多有一把AK47 # 2.士兵用枪射击标靶 # 3.枪能装填和发射子弹 class Gun: # 分析: # 枪的属性 ...

  8. VMware桥接模式连接局域网和互联网

    第一步:确认本地网关地址 第二步选择桥接模式: 我比较幸运,桥接到"自动",就已经连接成功.不用逐个试错. 修改 ifcfg-ens33 和 新建 ifcfg-br0 [root@ ...

  9. RHCSA 第七天

    1.创建文件,并赋予权限611(两种方式,一种guoa,一种nnn) 2.创建目录,并赋予权限755(两种方式,一种guoa,一种nnn) 3.创建文件,并将文件的属主和属组修改其他用户 4.设置su ...

  10. RHCSA 第五天

    1. a.创建普通变量local_data=1并访问 [root@sss ~]#local_data=1 [root@sss ~]#echo local_data local_data [root@s ...