T1.

显然往 \(x < 0, y < 0\) 的点走一定不优。

根据转移式可发现 \(C(x, y)\) 即从 \((0, 0)\) 走到 \((x, y)\) 的方案数 \(\dbinom {x + y} {x}\)。

那么兜一个圈圈再回到目的地显然没有直接往目的地走优。

于是我们可以强化限制:每一步只能向右或者上走。

设 \(f_{i, j}\) 表示走到 \((i, j)\) 的体力的最小花费,则有 \(f(i, j) = \min \{f(i - 1, j), f(i, j - 1)\} + \dbinom {i + j} {j}\)。

其中 \(0 \leq i \leq n, 0 \leq j \leq m\),且 \(f(i, 0) = i, f(0, j) = j\)。

从 \((n, m)\) 点往前倒推转移过程,不难发现走 \((0, 0) \to (0, m) \to (n, m)\) 或者 \((0, 0) \to (n, 0) \to (n, m)\) 一定最短。更确切的:

  • 若 \(n = \max \{n, m\},m = \min \{n, m\}\),则 \((0, 0) \to (n, 0) \to (n, m)\) 最短。
  • 若 \(m = \max \{n, m\},n = \min \{n, m\}\),则 \((0, 0) \to (0, m) \to (n, m)\) 最短。

考虑直接写出最后答案的柿子,以第一种情况为例。

容易得出 \(\mathbb{Ans} = n + 1 + {\large \sum \limits _{i = 1}^{m}} \dbinom {n + i} {n}\)。

可化为 \(n + 1 + {\large \sum \limits _{i = n + 1}^{m + n}} \dbinom {i} {n} = n + 1 + {\large \sum \limits _{i = 0}^{m + n}} \dbinom {i} {n} - {\large \sum \limits _{i = 0}^{n}} \dbinom {i} {n}\)。

前面一个和式使用变上项求和公式,后一个本来就等于 \(0\),故有:\(\mathbb{Ans} = n + 1 + \dbinom {m + n + 1} {n + 1}\)。

\(m, n\) 很大,但 \(mn \leq 10^{12}\),故考虑利用 \(\dbinom {m + n + 1} {n + 1} = \dbinom {m + n + 1} {m}\),调整计算过程,大力算即可,大概是根号级别的。


T2.

把题目在手上 Rua 一 Rua,你会发现它就是一个有可重复元素的康拓展开(本质上就是一堆 \([0, 9]\) 的数,可重,在全排列中有多少的排列的字典序小于给定排列)。

那就像康托展开一样去玩它。

设原数,即原序列为 \(A\),长度为 \(n\)。对于第 \(i\) 个位置考虑对实际填数方案分类。

  • \(i\) 之前的数均与 \(A\) 中对应元素相等,且 \(i\) 上填比 \(A_i\) 小的数。那么 \(i\) 以后的就是没用过的数的排列个数,注意是可重排列。
  • \(i\) 及以前的数均与 \(A\) 中对应元素相等。标记当前元素被用过直接往后继续算即可。

仅有以上两种情况,给个部分代码供参考。

for(int i = 1; i <= len; i++) {
for(int j = 0; j < (s[i] - '0'); j++)
if(cnt[j]) {
cnt[j]--;
ans += calc(len - i); // 可重排列
cnt[j]++;
}
cnt[s[i] - '0']--;
}

然后考虑处理这个可重排列。

设需要排列的可重集为 \(B = \{B_1 \times n_1, B_2 \times n_2 , \dots , B_k \times n_k\}\),表示 \(B_i\) 有 \(n_i\) 个。

朴素的排列计算方式为:\(\dfrac {S!} {\prod \limits_{i = 1}^{k}(n_i!)}\),其中 \(S = {\large \sum \limits _{i = 1}^k} n_i\)。

但此题无取模,这样算会炸,考虑换一个方案,我们可以将 \(B_1\) 到 \(B_k\) 按顺序分配到 \(n\) 个位置上。

则排列数可化为:\({\large \sum \limits _{i = 1} ^{k}} \dbinom {n - \mathrm{Pre}(i)} {n_i}\),当中 \(\mathrm{Pre}(i) = {\large \sum \limits _{j = 1} ^{i}} n_j\)。

这样就可以杨辉三角预处理,然后再做了。


T3.

简单容斥。

抬手先判一个若 \((n - 1) \times m < k\),则无解。

接下来发现,如果没有 \([0, n)\) 的限制,利用插板法可答案为 \(\dbinom {m + k - 1} {m - 1}\)。显然这里面会有单个元素超过 \(n - 1\) 的分配方案,考虑去除掉它们。

设至少有 \(x\) 个元素超过了 \(n - 1\) 的方案数为 \(f(x)\),发现 \(f(x) = \dbinom {m} {i} \times \dbinom {m + k - x \times n - 1} {m - 1}\)。

即将这 \(x\) 个元素先每一个都分配 \(n\),在把剩下的分配随便分配的方案数,注意每个元素是不同的,需要考虑顺序。

接下来就容斥呗。可知 \(\mathbb{Ans} = {\large \sum \limits _{i = 0}^{m}f(i) \times k(i)}\),其中 \(k(i) = \left \{ \begin{matrix} -1, x\equiv 1 \pmod 2 \\ 1, x \equiv 0\pmod 2 \end{matrix} \right.\)。


T4.

为什么要难度降序啊。

设至少有 \(x\) 个爱好相同的人的对数为 \(f(x)\)。

则 \(\mathbb{Ans} = {\large \sum \limits _{i = 0}^{5}f(i) \times k(i)}\),其中 \(k(i) = \left \{ \begin{matrix} -1, x\equiv 1 \pmod 2 \\ 1, x \equiv 0\pmod 2 \end{matrix} \right.\)。

\(f(x)\) 可以直接 Trie 或者 Hash + map 统计出来嘛。

就是说,你用 \(O(2^5)\) 对于每一个人去枚举至少那些爱好属于相同的,然后分开计算贡献。


Conclusion.

首先死在了难度降序。

然后死在了 T1 降智打了 Lucas。

接着死在了 T2 对康拓展开毫无印象。

又死在了 T3 手推降智 \(O(nm)\) 容斥。

最后死在了 T4 的失智。

综合来讲,死在了对题目 Trick 的极低的敏感度。

Solution -「2021.11.27」\Infty的更多相关文章

  1. Solution -「多校联训」朝鲜时蔬

    \(\mathcal{Description}\)   Link.   破案了,朝鲜时蔬 = 超现实树!(指写得像那什么一样的题面.   对于整数集 \(X\),定义其 好子集 为满足 \(Y\sub ...

  2. Solution -「多校联训」假人

    \(\mathcal{Description}\)   Link.   一种物品有 长度 和 权值 两种属性,现给定 \(n\) 组物品,第 \(i\) 组有 \(k_i\) 个,分别为 \((1,a ...

  3. Solution -「多校联训」查拉图斯特拉如是说

    \(\mathcal{Description}\)   Link.   给定 \(n\) 和 \(m\) 次多项式 \(f(x)\),求 \[\sum_{i=0}^n\binom{n}{i}f(i)\ ...

  4. Solution -「洛谷 P6021」洪水

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个点的带点权树,删除 \(u\) 点的代价是该点点权 \(a_u\).\(m\) 次操作: 修改单点点权. ...

  5. Solution -「洛谷 P4719」「模板」"动态 DP" & 动态树分治

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个结点的带权树,\(m\) 次单点点权修改,求出每次修改后的带权最大独立集.   \(n,m\le10^5 ...

  6. Solution -「集训队作业 2013」「洛谷 P4841」城市规划

    \(\mathcal{Description}\)   link.   求 \(n\) 个结点的简单无向连通图个数,对 \(1004535809~(479\times2^{21}+1)\) 取模.   ...

  7. Solution -「洛谷 P5827」边双连通图计数

    \(\mathcal{Description}\)   link.   求包含 \(n\) 个点的边双连通图的个数.   \(n\le10^5\). \(\mathcal{Solution}\)    ...

  8. Solution -「洛谷 P5827」点双连通图计数

    \(\mathcal{Description}\)   link.   求有 \(n\) 个结点的点双连通图的个数,对 \(998244353\) 取模.   \(n\le10^5\). \(\mat ...

  9. Solution -「洛谷 P4389」付公主的背包

    \(\mathcal{Description}\)   Link.   容量为 \(n\),\(m\) 种物品的无限背包,求凑出每种容量的方案数,对 \(998244353\) 取模.   \(n,m ...

随机推荐

  1. idea打开service窗口

  2. 终于有人把云计算、大数据和 AI 讲明白了【深度好文】

    一个执着于技术的公众号 我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据 ...

  3. NLP教程(6) - 神经机器翻译、seq2seq与注意力机制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  4. 函数式接口和@FunctionalInterface

    函数式接口的特点 接口有且仅有一个抽象方法 允许定义静态方法和默认方法(这两个都不是抽象方法) 允许java.lang.Object中的public方法(因为任何一个函数式接口的实现,默认都继承了Ob ...

  5. 思索 p5.js 的最佳实践

    思索 p5.js 的最佳实践 本文写于 2020 年 12 月 18 日 p5.js 是一个 JavaScript 库,用于为艺术家.设计师提供更容易上手的创意编程. 它有着完整的一套基于 Canva ...

  6. MVC 与 Vue

    MVC 与 Vue 本文写于 2020 年 7 月 27 日 首先有个问题:Vue 是 MVC 还是 MVVM 框架? 维基百科告诉我们:MVVM 是 PM 的变种,而 PM 又是 MVC 的变种. ...

  7. windows 存储和切换 ip 配置

    我的虚拟机用的是桥接模式,在公司使用时设置的是静态 ip,但网段和家里面的不一样,就导致在公司和家里,我需要频繁修改 ipv4 的配置以适应不同的网络环境 Simple-IP-Config 工具解决了 ...

  8. spring boot redis 写入异常

    redis 的 key value 使用 json 序列化.反序列化时,写入的 bean 不能是 final 类型的类,否则无法解析

  9. Fail2ban 安装Fail2ban到Ubuntu

    系统版本:Ubuntu 16.04.5 LTS 软件版本:fail2ban-0.9.3 硬件要求:无 1.安装Fail2ban root@local:~# apt-get update root@lo ...

  10. MyCat应用实战

    下载Mycat https://github.com/MyCATApache/Mycat-Server/releases Mycat基础分库 基础配置 修改server.xml <user na ...