[USACO2021DEC] HILO

Solution

参考自 官方题解 里提到的一篇 Obliteration.pdf,但是里面作者写出了极多错误。。。然后式子还错错得对了。

令 \(y=n-x\)。

我们考虑枚举每一对数的贡献,不妨设为 \(j,i\ (j\in [x+1,n],i\in [1,x])\):

\[\pi =\underbrace{\cdots}_{X} \ j\ \underbrace{\cdots}_{Y} \ i \underbrace{\cdots}_{Z}
\]
  • 对于 \(k\in [1,i)\),它们若位于 \(X,Z\) 则没有限制,位于 \(Y\) 则得满足它不是 "LO";

  • 对于 \(k\in [i+1,x]\),它们只能位于 \(Z\);

  • 对于 \(k\in [x+1,j)\),它们只能位于 \(Z\);

  • 对于 \(k\in [j+1,n]\),它们没有任何限制。

我们枚举第一类位于 \(X,Y\) 的个数 \(m\),限制是位于 \(X\) 中的 \(\max\) 大于 \(Y\) 中的 \(\max\),显然两者是对称的,所以方案数为 \(\binom{i-1}{m} \cdot \frac{(m+1)!+[m=0]}{2}\)。

接下来推式子:

\[\begin{aligned}ans&=\sum_{i\le x}\sum_{j\le y} n^{\underline{y-j}} \sum_{m}\binom{i-1}{m} \cdot \frac{(m+1)!+[m=0]}{2}\cdot (n-(y-j+1)-m-1)!\\&=\sum_{j\le y} n^{\underline{j-1}}\sum_{i\le x}\sum_{m}\binom{i-1}{m}\cdot \frac{(m+1)!+[m=0]}{2}\cdot (n-j-m-1)!\\&=\sum_{j\le y} n^{\underline{j-1}}\sum_{m}\binom{x}{m+1}\cdot \frac{(m+1)!+[m=0]}{2}\cdot (n-j-m-1)!\\&=\sum_{j\le y}\frac{n^{\underline{j-1}}}{2}\left(x(n-j-1)!+\sum_{m\ge 1}\frac{x!}{(x-m)!}(n-j-m)!\right)\\&=\sum_{j\le y}\frac{n^{\underline{j-1}}}{2}\left(x(n-j-1)!+x!(y-j)!\sum_{m\ge 1}\binom{n-j-m}{y-j}\right)\\&=\sum_{j\le y}\frac{n^{\underline{j-1}}}{2}\left(x(n-j-1)!+x!(y-j)!\binom{n-j}{y-j+1}\right)\\&=\sum_{j\le y}\frac{n^{\underline{j-1}}}{2}\left(x(n-j-1)!+\frac{x(n-j)!}{y-j+1}\right)\\&=\frac{n!}{2}\sum_{j\le y}\left(\frac{x}{(n-j)(n-j+1)}+\frac{x}{(n-j+1)(y-j+1)}\right)\\&=\frac{n!}{2}\sum_{j\le y}\left(\frac{x}{n-j}-\frac{x}{n-j+1}+\frac{1}{y-j+1}-\frac{1}{n-j+1}\right)\\&=\frac{n!}{2}\left(1-\frac{x}{n}+H_y-(H_n-H_{n-y})\right)\\&=\frac{n!}{2}\left(H_x+H_y-H_n+\frac{y}{n}\right)\end{aligned}
\]

其中 \(H_n\) 是调和级数前缀和。

于是我们得到了可以对 \(x=0\sim n\) 均 \(\mathcal O(1)\) 求解的线性做法。

时间复杂度 \(\mathcal O(n)\)。

[USACO2021DEC] HILO 踩标做法的更多相关文章

  1. 【NFLSPC#4】嘉然今天吃什么(踩标做法)

    [NFLSPC#4]嘉然今天吃什么 感谢 @zhoukangyang 神仙的帮助. Solution 令 \(s_i\) 表示选了 \(i\) 个灯后仍然不合法的概率,那么 \(E(x)=\sum_{ ...

  2. 「ARC 139F」Many Xor Optimization Problems【线性做法,踩标】

    「ARC 139F」Many Xor Optimization Problems 对于一个长为 \(n\) 的序列 \(a\),我们记 \(f(a)\) 表示从 \(a\) 中选取若干数,可以得到的最 ...

  3. 【BZOJ-3673&3674】可持久化并查集 可持久化线段树 + 并查集

    3673: 可持久化并查集 by zky Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 1878  Solved: 846[Submit][Status ...

  4. ZJOI2019一轮停课刷题记录

    Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. ...

  5. SCOI 2018 划水记

    (此处不应有目录,省选爆零的过程得慢慢看) Day -n 一诊 说真的,在没看到“第一次诊断性考试”之前,一直以为是“一整”,真是可怕,初中教育都开始像UW中的最高祭司学习了. 感觉题目很gg.于是考 ...

  6. LOJ3048 「十二省联考 2019」异或粽子

    题意 题目描述 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 $n$ 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 $1$ 到 $n$.第 $i$ 种馅儿具 ...

  7. NOIP练习赛题目4

    肥得更高 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 自2009年以来,A.B站的历史就已经步入了农业变革的黎明期.在两站的 ...

  8. 【数学】【P5150】 生日礼物

    Description 给定 \(n\),求 \[\sum_{i}~\sum_j~[lcm(i,j)~=~n]\] input 一行一个整数代表 \(n\) Output 一行一个整数代表答案 Hin ...

  9. Wolfycz的娱乐赛题解

    现在不会放题解的!比赛完了我会把题解放上来的 祝大家玩的愉快~ 等会,cnblogs不会显示更新时间?我禁赛我自己 UPD:2018.12.15 欢迎大家爆踩标程- painting 我们考虑转化题意 ...

随机推荐

  1. jboss 7.1.1.final 报错 set the maxParameterCount attribute on the Connector

    Therefore, I cannot just add the connector attribute in standalone.xml like so: 在 <JBOSS_HOME> ...

  2. CSS简单样式练习(四)

    运行效果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...

  3. CommonsCollection7反序列化链学习

    CommonsCollections7 1.前置知识 Hashtable Hashtable实现了Map接口和Serializable接口,因此,Hashtable现在集成到了集合框架中.它和Hash ...

  4. 时间盲注——AS别名让盲注不盲

    用处 页面存在时间盲注,注入成功了,你啥也看不到. 这只是为了能够查看到注入后的结果 网站部分源代码 <?php $conn = mysqli_("127.0.0.1",&q ...

  5. numpy教程05---ndarray的高级操作

    欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...

  6. 嵌入式Servlet容器

    配置嵌入式Servlet容器 ##Spring Boot里面内置了嵌入式的Servlet容器(tomcat) 点击pom.xml->右键->Diagrams->show Depend ...

  7. docker方式安装zabbix

    这个示例展现了如何运行支持MySQL数据库的Zabbix server,基于Nginx web服务器运行Zabbix web接口,以及Zabbix Java gateway. 1. 启动一个空的MyS ...

  8. k8s 初始化环境(1)

    概念 k8s/kubernetes 容器化部署 解决容器编排问题,kubernetes为容器编排软件的佼佼者 kubernets为一组服务器集群 功能 自我修复 一个容器崩溃,另一个容器起来 弹性伸缩 ...

  9. Nuxt 的介绍与安装

    Nuxt.js(一.介绍与安装) 1.为什么使用Nuxt 渐进式Vue.js框架给前后端分离带来无限的乐趣,越来越多的程序员选择Vue.在我们使用Vue框架的过程中不免会出现以下的一些问题: 如何更好 ...

  10. gin框架使用【2.RESTFUL API使用】

    package mainimport ( "github.com/gin-gonic/gin")func main() { router := gin.Default() rout ...