首页 > 其他分享 >2.6-2.8

2.6-2.8

时间:2023-02-08 21:45:57浏览次数:58  
标签:min sum 2.6 计数 2.8 choose 区间 转移

前两天鸽掉了,今天写在一起吧。

ZROI2521 数正方体

考场上观察出了结论,设三个视图大小分别为 \(a,b,c\) 钦定满足 \(a\leq b \leq c\) ,能被摆出当且仅当 \(ab\geq c\) 。正确性可以从构造的角度理解。

这里介绍一下题解的做法,比我赛时大常数分类讨论多且巨大多细节的做法好很多。

我们考虑用总方案减去不合法的部分,不合法的包括 \(ab<c\) ,\(bc<a\) ,\(ac<b\) ,对这三种情况分别计数,显然不会存在方案被减去两次。

现在我们要求解这样一个式子:

\[\sum_{a=1}^A\sum_{b=1}^B\sum_{c=1}^C[c>ab] \]

\[=\sum_{a=1}^A\sum_{c=1}^C\min(B, \left \lfloor \frac{c-1}{a}\right \rfloor) \]

对于后面那个分式等于与 \(c=C\) 时取值相同的单独计算,其余的以 \(a\) 为循环节。令 \(n=\min(B, \left \lfloor \frac{c-1}{a}\right \rfloor)\)

\[\sum_{a=1}^A \left ( a\cdot\sum_{k=1}^{n-1} k+\sum_{c=an+1}^Cn\right) \]

将 \(C\) 视为常量,将后面式子的取值看作一个关于 \(n,a\) 的函数。

\[f(n,a)=a \cdot \frac{n(n-1)}{2}+n \cdot (C-an) \]

整除分块计算即可。

ZROI2522 数树上点

\(O(nD)\) 的 \(\text{dp}\) 较为显然,合并两棵子树过程如下:

\[f_{x,i}\cdot f_{y,j}[i+j\geq D] \rightarrow f'_{x,\min(i,j)} \]

后缀和优化一下就可以做到 \(O(nD)\) 。

考虑到转移后第二维是两边取个 \(\min\) ,分别记 \(sz_x,sz_y\) 表示 \(x,y\) 子树内最深的点与其的距离,每次转移从小的合并到大的,就可以在 \(\min(sz_x,sz_y)\) 的代价内完成。

总时间复杂度就可以做到 \(O(n)\) 了。参考长链剖分。

树形 \(\text{dp}\) 如果某一维与子树某些信息有关,可以加以限制来优化,一般可以降一维。

ZROI2523 数区间集

先考虑对极大区间计数,区间 \([l,r]\) 为极大区间当且仅当区间内没有出现过 \(a_{l-1},a_{r+1}\) 。这个我们可以直接用树状数组二维数点来完成。

考虑对于极大区间计数,某些区间会被我们统计两次,我们要减掉。选取极大区间在这题中有一个性质:

被计算两次的区间不会相邻或者相交 :否则就不满足极大区间的性质了。

我们记 \(b_i\) 为 \(a_i\) 在序列中另一个出现的位置,考虑如果一个区间 \([l,r]\) 被重复计算,那么满足:

\[w_{l,r}=\max_{i=l}^rb_i- \min_{i=l}^r b_i -(r-l)=0 \]

并且 \([\max_{i=1}^r b_i,\min_{i=l}^rb_i]\) 与 \([l,r]\) 不相交或者相邻。
注意任意 \(w_{l,r}\) 都是非负的,问题转化成求区间权值为 \(0\) 的区间个数,限制一下区间的右端点范围即可。用线段树和单调栈维护。

对有重复元素的区间计数时可以考虑对极大或者极小区间计数,此题选择极大区间因为有不相交不相邻这个性质

CF1784D.Wooden Spoon

这题一开始我是考虑从下往上去转移,看了 \(\text{Alex_Wei}\) 的题解恍然大悟。

  • 从下往上计数:要维护每一层的胜者还有最后获得奖励的人。
  • 从上往下计数:只需要维护每一层胜者,到最后一层就是获得奖励的人。

显然应该要从上往下枚举更优。

为了转移方程的简洁,我们讲题目限制取反,最大的才会赢,显然对答案是不会有影响的。

设计 \(\text{dp}\) 状态:\(f_{i,j}\) 表示在第 \(i\) 层获胜者是 \(j\) 的方案数。初值 \(f_{1,2^n}=1\) 。

考虑转移,先给出转移方程:

\[{j-1-2^{n-i} \choose 2^{n-1}-1}f_{i,j} \rightarrow f_{i+1,k}(k >j) \]

这个转移方程的转移系数没有任何组合意义!或者说组合意义是错误的。

但是尝试将此题的转移倒过来,我们先要在前 \(p_1\) 个数中选择 \(q_1\) 个数,然后在前 \(p_2\) 个数中选择 \(q_2\) 个,不能与之前的重复 ...... 我们按照 \(p\) 限制从小到大排序,方案数如下:

\[{p_1 \choose q_1}{p_2-q_1 \choose q_2}...{ p_m-\sum_{i=1}^{m-1}q_i \choose q_m} \]

因而此题转移系数在每层选择下一次的数的时候看似一些数已经在之前被选择过了,但是不妨将其倒过来考虑,它就是对的!。

标签:min,sum,2.6,计数,2.8,choose,区间,转移
From: https://www.cnblogs.com/oscaryangzj/p/17103386.html

相关文章

  • 12.6用程序来表示人类的思考方式
    到目前为止,我们已经用程序表示了直觉、想法、习惯以及经验等。不过,除此之外,人类还有一个思考方式。思考方式是思考方法的节奏。人类大脑中有类似于“石头、石头、布、剪刀......
  • 2023.2.6
    IOFileInputStreamFileOutputStreamFileReaderFileWriterBufferedReader使用这个流的时候不需要使用char数组或者自定义byte[],自带缓冲(当一个Stream的构造方法中......
  • 2.6 掌握逻辑运算的窍门
    将二进制数表示的信息作为四则运算的数值来处理就是算术。而像图形模式那样,将数值处理为单纯的0和1的罗列就是逻辑。计算机能处理的运算,大体可分为算术运算和逻辑运算。算......
  • 2.6-2.7
    LinkCutTree(动态树)概念讲解LCT维护的对象其实是一个森林。在实链剖分的基础下,LCT支持更多的操作,即树剖升级版,但在实际做题中因为树剖的常数小且相对容易调试,所以能......
  • 闲话 23.2.6
    闲话?感觉没啥想说的诶但是jjdw请勿宣称一些不存在的辈分关系......
  • 2023.2.6 日寄
    2023.2.6日寄一言\(~~~~\)人生海海,潮落之后是潮起。你说那是消磨、笑柄、罪过,可那就是我的英雄主义。——麦家模拟赛ClickHere鲜花\(~~~~\)今天和同学去食......
  • spring boot 2.6.2解决log4j漏洞
    公司版本2.3,因为那个log4j漏洞准备升级2.6.2测试下,记录下出现的问题高版本不允许循环依赖,如果写的时候不太注意,改的时候也要改很多地方,最后决定添加个配置解决在bootstra......
  • web之php一句话木马总结------2023.2.6
    一句话木马的原理<?php@eval($_POST['shell']);?>这是php的一句话后门中最普遍的一种。它的工作原理是:首先存在一个名为shell的变量,shell的取值为HTTP的POST方式。Web......
  • web之命令执行常见函数------2023.2.6
     system()函数作用:将字符串作为OS命令执行,自带输出功能。格式:stringsystem(string$command[,int&$return_var])//$command为执行的命令,&return_var可选,用来......
  • 2.6掌握逻辑运算的窍门
    将二进制数表示的信息作为四则运算的数值来处理就是算术。而像图形模式那样,将数值处理为单纯的0和1的罗列就是逻辑。计算机能处理的运算,大体可分为算术运算和逻辑运算。算......