首页 > 其他分享 >07-30 题解

07-30 题解

时间:2024-07-30 21:30:05浏览次数:6  
标签:max frac 07 题解 30 sqrt 贡献 ans

07-30 题解

A

朴素的想法

$ dp(i, j, k) $ 表示考虑到第 \(i\) 位, 前 \(i\) 位的和为 \(j\), 第 \(i\) 位的值为 \(k\)

然后咋转移?

重新定义移动小球的方式:

  1. 从自己右边的邻居拿过来正数个球
  2. 拿过来负数个球(即往右边的邻居放正数个球)

在第 2 种操作中, 我们拿走的球会被后面放过来的球补上, 所以只要最终状态下每个箱子里小球的个数都是非负整数即可

由于我们的转移方式都是从右边拿球, 所以考虑到第 \(i\) 位时, \(Sum_{i + 1}\) 是不变的(\(Sum_x\) 表示前缀和), 所以第 \(i + 1\) 位的贡献就是 \(|j_{i + 1} - Sum_{i + 1}|\) (\(j\) 在前面定义过)

完结

B

鸽(我赛时用了个假的 \(O(n)\) BFS 过了, 你说 mxoj 牛不牛)

C

朴素想法

直接树形 DP 或者贪心地由底向上取链

但是这样对于每一个 \(k\) 都要计算一次, 显然 TLE (我第一次用显然啊)

然后经过观察

​ 发现可以根号分治解决

为什么呢?

  1. 对于所有 \(k \le \sqrt{n}\) , 暴力计算总复杂度是 \(O(n \sqrt{n})\) 的
  2. 对于所有 \(k > \sqrt{n}\), ans 的取值最多有 \(\sqrt{n}\) 种(\(ans \le \frac{n}{k} \le \frac{n}{k_{min}} = \sqrt{n}\)), 所以暴力计算当前端点 \(l\) 的 DP 值, 二分最大的 \(r\) 使得 \(ans_r = ans_l\), 总复杂度 \(O(n\sqrt{n}\ log\ n)\) (因为 \(ans_k\) 是单调不增的, 所以可以二分)

完结!

D

拆分贡献

对于 \(h_i\) , 设小于他的 \(h\) 一共有 \(s\) 个, 大于等于的(包括自己)则有 \(n - s\) 个

在 \(\ge h_i\) 的 \(h\) 中任取一个都能与 \(h_i\) 组合并产生贡献, 方式有 \((n - s)!\) 种(\(h_i\) 在第一个也可以, 见题意)

剩下的 \(s\) 个数我们可以随便放

考虑 \(s\) 中的某一个数放到 \((pre_i, i)\) 的贡献:

首先会产生 1 的贡献, 剩下的 \(s - 1\) 个数随便放, 有 \(A_{n - s + 1 + s - 1}^{s - 1} = A_{n}^{s - 1}\) 种放法, 一共有 s 个等价的数, 所以总贡献是 \((n - s)!sA_{n}^{s - 1}\)

序列的总个数为 \(n!\), 如果 \(i\) 和 \(pre_i\) 之间啥也不放, 还有 1 的贡献, 在每个排列中都有, 一共是 \(n!\) , 所以总的期望为 \(\frac{(n - s)!sA_{n}^{s - 1} + n!}{n!} = \frac{s(n + 1)}{n - s + 1}\)

对于每个 \(h_i\) 都求一遍即可

E

贪心地考虑, 对于每一个 \(b\), 我们选出最大的 \(b\) 个 \(a\) 来(不为 0), 将他们都 -1, 这样肯定是不劣的

所以怎么动态地维护最大的几个 \(a\), 并修改他们?

平衡树!

将模板《普通平衡树》的基本操作和《文艺平衡树》的 tag 操作结合起来, 就可以得到一棵带修的 Fhq Treap

修改后右根 R 中的所有元素不一定都大于左根中的, 再 Split 一次后合并即可

代码实现好像没那么难

F

很好的性质:有向无环图

定义 ‘贡献’ 为 A 比 B 多走的步数, 如果 A 想要赢, 那么 ‘贡献’ > 0

记 \(f(i)\) 为从第 \(i\) 个点开始走的贡献

这是一个对抗的过程, A 和 B 都会选择对自己最有利的结果

  1. 如果 i 为白点, 那么 \(f(i) = max(0ll, max(f(son_i)))\) , ( 和 0 取 max :如果白点对 A 的贡献非正, A 不会选择走到这里)
  2. 如果 i 为黑点, 那么 \(f(i) = min(0ll, max(f(son_i)))\) , (和 0 取 min : 如果黑点对 A 的贡献非负, B 也不会选择走到这里)

这时候有向无环图的优势就显露出来了: Dp 可以从每个入度为 0 的点开始, 类似拓朴排序, 且转移时不会出现环!

统计方案数的实质就是从 \(n\) 个点中选出一些, 使得 ‘贡献’ > 0, 直接 01 背包即可

注意过程中容量可能为负数

标签:max,frac,07,题解,30,sqrt,贡献,ans
From: https://www.cnblogs.com/Bubblee/p/18333375

相关文章

  • 【ROS 最简单教程 002/300】ROS 集成开发环境安装 (虚拟机版): Noetic
    ......
  • Luogu P1983 车站分级 题解 [ 绿 ] [ 拓扑排序 ] [ 图论建模 ] [ 虚点 ]
    车站分级:很好的拓扑排序题,细节有点多。图论建模首先观察对于一条线路,我们可以从中直接得到什么信息:假设这条线路的开头为\(st\),结尾为\(ed\),那么在\([st,ed]\)的车站中,没有被选入线路的点一定比选入线路的点的级数至少少\(1\)。对于这一点条件,我们就可以建模了。......
  • 勤奋学习的第十三天(2020.7.30)
    1.MySQL中的DMLDML:数据库管理语言1.添加数据:insert1.指定具体列时添加数据:insert into 表名(列名,列名...) value(,,...)这种情况会向表中具体列中添加一条数据,数据内容在value中insertintostaff(id,code,name,salary)value(2,'1002','李四',12000);也可以......
  • 7 .30 ACM总结
    放假前几天,老师让我们打一场ACM来放松一下(非常好,放松不一定,被压力了)C题C题是个非常水的搜索题,队友看一眼就秒了。写的时候出了一点小问题,但也调出来了,此时我们来到了第6(总共7队)。#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=1e3+5;......
  • CF538H Summer Dichotomy 题解
    Description有\(T\)名学生,你要从中选出至少\(t\)人,并将选出的人分成两组,可以有某一组是空的。有\(n\)名老师,每名老师要被分配到两个小组之一,对于第\(i\)名老师,要求所在的小组中的学生人数\(\in[l_i,r_i]\)。此外,有\(m\)对老师不能在同一个小组中。你需要判断能否......
  • SP8099 TABLE - Crash´s number table 题解
    题目传送门前置知识一般的积性函数|数论分块|莫比乌斯反演解法令\(n\lem\)。考虑莫比乌斯反演,推式子,有\(\begin{aligned}&\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\operatorname{lcm}(i,j)\\&=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\frac{ij}{\gcd(i,j)......
  • 7/30 go协程
    协程是逻辑上优化的线程,不用切换CPU和内核态     组合访问   TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditi......
  • 题解:Pinely Round 4 (Div. 1 + Div. 2) A
    A.MaximizetheLastElementtimelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputYouaregivenanarray\(a\)of\(n\)integers,where\(n\)isodd.Inoneoperation,youwillremovetwoa......
  • 7.30总结
    T1很好的一道思维题。看到数据范围后,认为要么是\(O(1)\)的公式,要么是\(log_{2}n\)的算法。推了一下公式,推出来一个不等式,直接用二分来求解。T2开场感觉是一个树形DP,推了一会后发现一个节点的状态是具有后效性的,所以不能用DP进行求解。在观察一会之后,发现答案好像具有单......
  • 【调试笔记-20240730-Linux-OpenWrt 23.05 安装 Docker 配置 bitnami/Wordpress-with-
    调试笔记-系列文章目录调试笔记-20240730-Linux-OpenWrt23.05安装Docker配置bitnami/Wordpress-with-NGINX实现微信用户在线注册登录文章目录调试笔记-系列文章目录调试笔记-20240730-Linux-OpenWrt23.05安装Docker配置bitnami/Wordpress-with-NGINX实现......