首页 > 其他分享 >P8253 [NOI Online 2022 提高组] 如何正确地排序

P8253 [NOI Online 2022 提高组] 如何正确地排序

时间:2024-01-16 12:11:06浏览次数:30  
标签:le NOI limits min max sum 2022 P8253 aligned

P8253 [NOI Online 2022 提高组] 如何正确地排序

Problem

有一个 \(m\times n\) 的数组 \(a_{i,j}\)。
定义: \(f(i,j)=\min\limits_{k=1}^m(a_{k,i}+a_{k,j})+\max\limits_{k=1}^m(a_{k,i}+a_{k,j})\)。

你需要求出 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^nf(i,j)\)。

\(m = 2, 3, 4\),\(1 \le n, a_{i, j} \le 2 \times 10^{5}\)。

Solution

首先,\(m = 2, 3\) 都可以归到 \(m = 4\) 中,以下只讨论 \(m = 4\),并记四个序列分别为 \(A, B, C, D\)。

记 \(F(T) = \sum\limits_{i = 1}^{n}\sum\limits_{j = 1}^{n}\min\limits_{x \in T}(x_{i} + x_{j})\),其中 \(T\) 表示序列集合。

记 \(s_{k} = \sum\limits_{T \subseteq \{ A, B, C, D \}}F(T)\)。

利用 min-max 容斥化简答案:

\[\begin{aligned} Ans &= \sum\limits_{i = 1}^{n}\sum\limits_{j = 1}^{n}\left( \min\limits_{x \in \{ A, B, C, D \}}(x_{i} + x_{j}) + \max\limits_{x \in \{ A, B, C, D \}}(x_{i} + x_{j}) \right) \\ &= s_{4} + \sum\limits_{T \subseteq \{ A, B, C, D \}}(-1)^{|T| + 1}F(T) \\ &= s_{4} - s_{4} + s_{3} - s_{2} + s_{1} \\ &= s_{3} - s_{2} + s_{1} \\ \end{aligned} \]

该过程的本质是先对括号里的 \(\max\) 项进行 min-max 容斥,然后再与外层的和式组合起来。最后化简的结果是,我们把规模为 \(m = 4\) 的问题降成了规模为 \(m = 3\) 的问题。

于是我们的目标只需要求 \(s_{1}, s_{2}, s_{3}\);更具体地,我们可以只考查 \(F(A), F(A, B), F(A, B, C)\),然后分别枚举大小为 \(1, 2, 3\) 的的序列集合,使用相同的方法进行计算得到 \(s_{1}, s_{2}, s_{3}\)。

\(F(A)\):

\[\begin{aligned} F(A) = \sum\limits_{i = 1}^{n}\sum\limits_{j = 1}^{n}(A_{i} + A_{j}) = 2n\sum\limits_{i = 1}^{n}A_{i} \\ \end{aligned} \]

\(F(A, B)\):

考虑对以 \(A\) 作为最小值的贡献和以 \(B\) 作为最小值的贡献分别计算,并记为 \(F(A, B)|_{A}\),\(F(A, B)|_{B}\)。这里只考虑 \(F(A, B)|_{A}\)。

由于 \(A_{i}, A_{j}\) 本质相同,所以可以只考虑 \(A_{i}\),并将贡献 \(\times 2\)。

\[\begin{aligned} F(A, B)|_{A} &= 2\sum\limits_{i = 1}^{n}A_{i}\sum\limits_{j = 1}^{n}[A_{i} + A_{j} = \min(A_{i} + A_{j}, B_{i} + B_{j})] \\ &= 2\sum\limits_{i = 1}^{n}A_{i}\sum\limits_{j = 1}^{n}[A_{i} + A_{j} \le B_{i} + B_{j}] \\ &= 2\sum\limits_{i = 1}^{n}A_{i}\sum\limits_{j = 1}^{n}[A_{i} - B_{i} \le B_{j} - A_{j}] \\ \end{aligned} \]

直接统计即可。

\(F(A, B, C)\):思想同上。

\[\begin{aligned} F(A, B, C)|_{A} &= 2\sum\limits_{i = 1}^{n}A_{i}\sum\limits_{j = 1}^{n}[A_{i} + A_{j} = \min(A_{i} + A_{j}, B_{i} + B_{j}, C_{i} + C_{j})] \\ &= 2\sum\limits_{i = 1}^{n}A_{i}\sum\limits_{j = 1}^{n}[A_{i} + A_{j} \le B_{i} + B_{j} \land A_{i} + A_{j} \le C_{i} + C_{j}] \\ &= 2\sum\limits_{i = 1}^{n}A_{i}\sum\limits_{j = 1}^{n}[A_{i} - B_{i} \le B_{j} - A_{j} \land A_{i} - C_{i} \le C_{j} - A_{j}] \\ \end{aligned} \]

二维偏序即可。

注意 \(A_{i} + A_{j} = B_{i} + B_{j}\) 之类的情况会计重,所以对于不同的序列求贡献时,贡献条件会有 \(\le\) 和 \(<\) 的细微差别。

标签:le,NOI,limits,min,max,sum,2022,P8253,aligned
From: https://www.cnblogs.com/Schucking-Sattin/p/17967391

相关文章

  • 2022 CSP-J
    2022CSP-JP8813乘方(数学,模拟)题意给定两个数\(a,b\),如果\(a^b\le10^9\),输出\(a^b\)的值。否则输出\(-1\)。数据规模与约定对于\(100\%\)的数据,\(1\lea,b\le10^9\)。题解记得开longlong。如果\(a=1\),那么无论\(b\)是多少结果都是\(1\)。如果\(a\ne......
  • 2022 CSP-J
    P8813乘方(数学,模拟)题意给定两个数\(a,b\),如果\(a^b\le10^9\),输出\(a^b\)的值。否则输出\(-1\)。数据规模与约定对于\(100\%\)的数据,\(1\lea,b\le10^9\)。题解记得开longlong。如果\(a=1\),那么无论\(b\)是多少结果都是\(1\)。如果\(a\ne1\),那么\(a......
  • 【题解】gym103743 (2022 JSCPC)
    A.PENTAKILL!考虑直接模拟,规则就是一个人将其他人全部都击杀,并且中间没有重复击杀。code:#include<bits/stdc++.h>usingnamespacestd;map<string,vector<string>>st;intn;stringa,b;intmain(){cin>>n;for(inti=1;i<=n;++i){ci......
  • vulnhub-matrix(cve-2022-0847提权)
    环境准备靶机matrix192.168.116.134攻击机kali192.168.116.130演示启动靶机,使用nmap探测网段nmap192.168.116.0/24 扫描192.168.116.134全端口nmap-p1-65535192.168.116.134 访问网站 扫描目录gobusterdir-uhttp://192.168.116.134/-xphp,bak,tx......
  • ICLR 2022: Anomaly Transformer论文阅读笔记(2) 深度解析代码
    AnomalyTransformer是一个由Transformer:AttentionIsAllYouNeed启发出的检测时间序列异常点的无监督学习算法。在这一篇我会深度解析论文算法以及代码的一一对应,让人更方便能读懂和使用源代码。阅读笔记前篇:ICLR2022:AnomalyTransformer论文阅读笔记+代码复现阅读前提......
  • 2021-2022 ACM-ICPC Latin American Regional Programming Contest
    Preface唉最近天天前期犯病,读错题占用大量机时还红温,纯在靠队友兜底H板题但刚开始因为没打印自己的KM板子就写个了MCMF上去,然后直接TLE飞,后面找了个别人的板子抄上去才过,I题一个傻逼题题意读错爆WA两发最后1h把L题扔给队友然后跑去看ECF滚榜直播了,只能说从此清北电的格局打开了......
  • P5501 [LnOI2019] 来者不拒,去者不追 题解
    题目链接:来者不拒,去者不追直接在线查询题目所给的式子是很困难的,我们考虑单点考察贡献。对于一个已经确定的式子,我们发现加入一个数或者删除一个数的贡献如图所示:如图所示,在原有的序列为\((1,2,3)\)当中,我们加入新的\(2\)进去,我们观察到每个数的贡献的变化是这样,比\(2\)......
  • VS2022 嘿嘿
    还是大二的时候就开始用这个,但居然是为了用PB,-_-||用了段时间换成了C#,依稀还记得大佬们纠正我的读法,别读C井,应该读C夏普。。。安装过程其实也没啥,就是关键Key得花时间找,我好不容易搞定了,留个记号(从这里默默拿走,低调使用,关键信息都在这里 https://kdocs.cn/l/cixbRhgzh1pv)界......
  • HUBUCTF 2022新生赛Writeup
    既然是母校,那一定要好好对待~    2024-01-1322:42:34WEB [HUBUCTF2022新生赛]checkin题目链接:checkin原题<?phpshow_source(__FILE__);$username="this_is_secret";$password="this_is_not_known_to_you";include("flag.php");//hereI......
  • AtCoder World Tour 2022 B The Greatest Two
    原题面:https://atcoder.jp/contests/wtf22-day2/tasks/wtf22_day2_b题面翻译:一个长度为\(n\)的排列\(p\),每次可以把一个长\(k\)区间的最大与次大值交换,问操作任意次数后可以得到的排列数量对\(998244353\)取模。这题被我搬到了一场多校联考中。在搬到的题面中,我加入了......