[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. Java/C++实现代理模式---婚介所

    婚介所其实就是找对象的一个代理,请仿照我们的课堂例子"论坛权限控制代理"完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示"对不起,不能早恋!",并终止业 ...

  2. centos报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/

    检查是否可以上网. ping 114.114.114.114 如果不可以,调试通.通了之后下一步: 然后检查DNS设置是否正常. ping www.baidu.com 不正常的话,设置DNS,如下: ...

  3. 在Wireshrak中使用过滤器——捕获过滤器

    过滤器可以让你找出你所希望进行分析的数据包.简单来说,一个过滤器就是定义了一定条件,用来包含或者排除数据包的表达式.如果你不希望看到一些数据包,你可以写一恶搞过滤器来屏蔽它们.如果你希望只看到某些数据 ...

  4. Java多线程与线程池技术

    一.序言 Java多线程编程线程池被广泛使用,甚至成为了标配. 线程池本质是池化技术的应用,和连接池类似,创建连接与关闭连接属于耗时操作,创建线程与销毁线程也属于重操作,为了提高效率,先提前创建好一批 ...

  5. 1、【Python运维脚本】Python 按时间删除和清空文件

    删除和清空文件,用shell的话一条命令就够了,Python要一堆命令. 但是为了学习Python,所以用于实战,就得这么干了. Python 按时间删除和清空文件 #!/usr/bin/python ...

  6. QT-图标设置

    记录一下怎么在QT里添加图片,包括exe图标和里面使用的其他图片. 注意这个图片是指ico后缀的图片,去网上搜就有了,一大堆. 随便找的一个在线转换,http://www.bitbug.net/ 新建 ...

  7. 1903021116—吉琛—Java第三周作业—eclipse创建Java程序

    项目 内容 课程班级博客链接 19级信计班 这个作业要求链接 eclipse如何创建java程序 java语言基础(上) 我的课程学习目标 1. 学习博客园更多使用技巧 2. 通过作业实践熟练与熟悉掌 ...

  8. go 中 select 源码阅读

    深入了解下 go 中的 select 前言 1.栗子一 2.栗子二 3.栗子三 看下源码实现 1.不存在 case 2.select 中仅存在一个 case 3.select 中存在两个 case,其 ...

  9. 联想Y7000安装 debian10 wifi 不好使解决方法

    联想Y7000安装 debian10 wifi 不好使解决方法 wifi硬件高通QCA9377 把联想驱动加入黑名单 文件路径 /etc/modprobe.d/blacklist.conf 添加内容 ...

  10. Spring 源码(5)BeanFactory使用的准备及自定义属性值解析器

    BeanFactory 使用前的准备 上一篇文章 https://www.cnblogs.com/redwinter/p/16165878.html 介绍了自定义标签的使用,完成了AbstractAp ...