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. 汇编MMX实现图片淡入淡出核心代码

    计算机组成课程个人作业 参考: https://blog.csdn.net/yangjianqiao0/article/details/69388595 https://blog.csdn.net/d ...

  2. A pure L1-norm principal component analysis

    @ 目录 问题 细节 的损失函数 算法 投影 坐标系 载荷向量 A pure L1-norm principal component analysis 虽然没有完全弄清楚其中的数学内涵,但是觉得有趣, ...

  3. Windows下SQL Server数据库的安装

    由于工作需要出一版教程,记录一下安装过程,用到的数据库是SQL Server2014版本 下载地址为:SQL Server2014下载 提取码:6666 下载好安装包,首先右键,装载 装载完, 会有这 ...

  4. python 自动化测试框架unittest与pytest的区别

    前言: 有使用过unittest单元测试框架,再使用pytest单元测试框架,就可以明显感觉到pytest比unittest真的简洁.方便很多. unittest与pytest的区别: 主要从用例编写 ...

  5. Docker_使用Rancher管理docker(7)

    一.简介 Rancher是一个开源的企业级全栈化容器部署及管理平台.Rancher为容器提供一揽子基础架构服务:CNI兼容的网络服务.存储服务.主机管理.负载均衡.防护墙--Rancher让上述服务跨 ...

  6. Go语言系列之标准库os

    os包提供了操作系统的系列函数,这些接口不依赖平台.设计为Unix风格的,错误处理是go风格的:调用失败会返回错误值而非错误码.通常错误值里包含更多信息. os包的接口在所有操作系统中都是一致的.非公 ...

  7. 转雅虎web前端网站优化 34条军规

    雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文 1.Minimize HTTP Requests 减少HTTP请求 图片.css.sc ...

  8. synchronized锁升级详细过程

    java对象头由3部分组成: 1.Mark Word 2.指向类对象(对象的class对象)的指针 3.数组长度(数组类型才有) 重点是 Mark Word结构,下面以32位HotSpot为例: 一. ...

  9. Android官方文档翻译 十 2.3Styling the Action Bar

    Styling the Action Bar 设计菜单栏的样式 This lesson teaches you to 这节课教给你 Use an Android Theme 使用一个Android主题 ...

  10. 通过UI库深入了解Vue的插槽的使用技巧

    Vue官网对于插槽的介绍比较简略,插槽本身也比较"烧脑",很容易看晕,我就一直没看懂,直到 使用了element-plus的组件的插槽. 其实我们可以换一个角度来理解插槽,就会豁然 ...