首页 > 其他分享 >2024年2月 杂题记录

2024年2月 杂题记录

时间:2024-02-28 14:56:52浏览次数:27  
标签:dots 二分 cnt frac 记录 dfrac sum 2024 杂题

[ARC122E] Increasing LCMs

正序构造的话,我们是不知道前面有什么的,于是我们倒序构造。当我们考虑最后一位时,前面的位都是知道的。设 \(v=\operatorname{lcm}(x_1,\dots,x_{i-1})\),则有 \(v<\operatorname{lcm}(v,x_i)\),即 \(\gcd(v,x_i)<x_i\),这等价于 \(\operatorname{lcm}_{j\ne i}\{\gcd(x_i,x_j)\}<x_i\)。

当 \(i\) 减小时,\(\operatorname{lcm}\) 单调不升,\(x\) 候选集合会不断变大,于是每次随便选一个符合条件的 \(x\) 即可。

CF1656H Equal LCM Subsets

直接找子集很难,转化成在全集上删除。

考虑 \(S_A\) 中一个数 \(a_x\) 是否一定要被删除,设其等于 \(p^{\alpha}\)。设 \(S_B\) 中的数在 \(p\) 这个质因子的指数上是 \(\beta\),若 \(\alpha>\max\{\beta_i\}\),则 \(a_x\) 一定要被删除。这等价于 \(\gcd\limits_{j=1}^{|S_B|}\left\{\dfrac{a_x}{\gcd(a_x,b_i)}\right\}>1\),这可以用开 \(2n\) 棵线段树维护。

开个队列,把要删除的点入队,之后遍历队列,暴力将每个数删除后对另一个集合线段树造成的影响给除去。时间复杂度 \(\mathcal{O}(n^2\log n)\)。

[AGC039D] Incenters

很厉害的几何题!!!

对于 \(\bigtriangleup ABC\) 来说,设内心为 \(I\),它的每条角平分线延长出去分别交外接圆 \(\odot O\) 于 \(D,E,C\) 三点,则可以证明,点 \(I\) 是 \(\bigtriangleup DEC\) 的垂心。

于是,我们将求内心转化为了求两点弧中点所围成的三角形的垂心。考虑如何求三角形的垂心 \(H\),如果不会欧拉线,凭借着向量知识也能知道,\(\overrightarrow{OD}+\overrightarrow{OE}+\overrightarrow{OF}=\overrightarrow{OH}\),因此 \(F=D+E+F\)。

于是我们可以 \(\mathcal{O}(n^2)\) 枚举任意两个点计算贡献,注意弧中点可能在优弧也可能在劣弧,要注意数量的计算。把三角函数拆开可以做到 \(\mathcal{O}(n)\)。

P6240 好吃的题目

猫树分治入门题。可以看出是 \(mid\) 往两边做 01 背包,写 \(pre,suf\) 两个数组被卡空间了……

P9200 「GMOI R2-T3」粒子环游

直接枚举 \(n+1\) 号点的插入位置,设插入第 \(i\) 位。记 \(s_i=\sum\limits_{j=1}^i e_i\),则答案要求最小化

\[\sum\limits_{i=1}^{n+1}|s_i-s_p|\times c_i \]

绝对值很难处理,如果把 \(s_i\) 丢到数轴上,那这个式子的几何意义就是:有 \(n+1\) 一个点,每个点有点权 \(c_i\),现在要寻找一个点为中心点,使得所有点到这个中心点的加权距离最小。进而,我们可以将点权转化为 \(c_i\) 个重复的点,这样就很显然了,我们只要选择位于中心的点,即在数轴上从左到右第 \(\left\lceil\dfrac{\sum c_i}{2}\right\rceil\) 个点。

思考如何计算答案,对于 \(s_p\) 右边的点,我们维护 \(sum=\sum s\),\(cnt=\sum c\),那么右边的答案就是 \(sum-s_p\times cnt\)。左边同理。

我们可以用动态开点线段树维护这个数轴,要支持单点修改、二分查找第 \(k\) 小的数,区间求和,比较简单。

当 \(n+1\) 插入的位置从 \(i\rightarrow i-1\) 时,\(s\) 只有 \(s_i,s_{i-1}\) 发生了变化,简单维护一下即可。时间复杂度 \(\mathcal{O}(n\log n)\)。

P7515 [省选联考 2021 A 卷] 矩阵游戏

容易发现,如果把 \(a\) 的第 \(n\) 行和第 \(m\) 列全部赋值成 \(0\),那么 \(a\) 可以递推得出。可惜因为 \(a_{i,j}\) 有大小限制,这可能是不合法的。考虑怎么改变使它合法,发现如果在同一行或者同一列同时进行 \(+x,-x+,-x\dots\) 操作,那么对应的 \(b\) 不会变化。

于是,设 \(r_i\) 为第 \(i\) 行的 \(x\),\(c_i\) 为第 \(i\) 列的 \(x\),那么可以构造一个表示 \(a_{i,j}\) 变化量的新矩阵 \(A_{i,j}\)

\[\begin{bmatrix}r_1+c_1&-r_1+c_2&r_1+c_3&\dots\\r_2-c_1&-r_2-c_2&r_2-c_3&\dots\\r_3+c_1&-r_3+c_2&r_3+c_3&\dots\\\vdots&\vdots&\vdots&\ddots\end{bmatrix} \]

但这样形式不统一,于是我们把偶数行的 \(r\) 和奇数列的 \(c\) 取相反数,那么矩阵就变成

\[\begin{bmatrix}r_1-c_1&c_2-r_1&r_1-c_3&\dots\\c_1-r_2&r_2-c_2&c_3-r_2&\dots\\r_3-c_1&c_2-r_3&r_3-c_3&\dots\\\vdots&\vdots&\vdots&\ddots\end{bmatrix} \]

这样,矩阵的每一项都是 \(x-y\) 的形式了,由于 \(0\leq a_{i,j}+A_{i,j}\leq 10^6\),所以 \(-a_{i,j}\leq x-y\leq 10^6-a_{i,j}\),这就转化成了差分约束的形式,可以用熟知的算法解决。

P8113 [Cnoi2021] 自我主义的平衡者

原来看错题了…………………………………………

猜想 \(a\) 从小到大排序取最大值,反过来取最小值。

下面钦定 \(a_{i+1}>a_i\),邻项交换证明前者。

  • 若 \(b_i=m\),\(b_{i+1}=0\)。则 \(s<a_i\),\(s'=s+\dfrac{m-s}{i}>a_{i+1}\)。交换后

    • 若 \(b_i=m\),则 \(s<a_i<a_{i+1}\),\(s''=s+\dfrac{m-s}{i}=s'>a_{i+1}>a_i\),所以 \(b_{i+1}=0\),没有更优秀。对后续也无影响。
    • 若 \(b_i=0\),则 \(s>a_{i+1}\),与条件矛盾。
  • 若 \(b_i=m\),\(b_{i+1}=m\),交换后必然不会更优。

  • 若 \(b_i=0\),\(b_{i+1}=m\),则 \(s>a_i\),\(s'=s+\dfrac{-s}{i}>a_{i+1}\)。交换后 \(b_i=0\),不可能更优\(s>s'>a_{i+1}>a_i\),\(s''>s>a_i\),所以 \(b_{i+1}=0\),没有更优。

  • 若 \(b_i=0\),\(b_{i+1}=0\),不可能更优。

综上,当 \(a\) 从小到大排序时,取最大值。

后者同理。

P1527 [国家集训队] 矩阵乘法

来学习整体二分。

整体二分就是应用于一些询问可以二分,但是如果单独二分时间复杂度过大,于是整体一起二分来减少时间复杂度的问题。

将所有操作按时间排好序放在数组 \(q\) 里离线下来。设函数 \(solve(l,r,L,R)\) 表示现在到了操作 \(l\sim r\),答案的值域在 \([L,R]\) 之间,把 \(mid=\dfrac{L+R}{2}\) 左边的值加入。对于询问则查询值域在 \([L,mid]\) 内的数是否大于等于 \(k\),是就把询问放到左区间,否则令 \(k\leftarrow k-cnt\),并放到右区间。时间复杂度 \(\mathcal{O}((n^2+q)\log^3 n)\)。

CF1285F Classical?

orz jiangly

套路地变 \(\operatorname{lcm}(a_i,a_j)=\dfrac{a_ia_j}{\gcd(a_i,a_j)}\)。如果 \(\gcd(a_i,a_j)=1\) 就好了,我们发现,如果把 \(a_i\) 的所有约数都放进序列,那必然存在 \(x\mid a_i\),\(y\mid a_j\),使得 \(\operatorname{lcm}(x,y)=\operatorname{lcm}(a_j,a_j)=1\),\(\gcd(x,y)=1\),并且原答案不会改变。

考虑将数从大到小加入,发现如果扫到 \(x\) 时,集合里存在 \(y\) 使得 \(\gcd(x,y)=1\),那么所有在 \((x,y)\) 内的数对 \(x\) 都没有贡献。于是拿个栈维护,扫到 \(x\) 时如果栈里有与 \(x\) 互质的数就不断弹栈。那如何判断栈里是否有与 \(x\) 互质的数呢?即 \(cnt_x\) 表示 \(x\) 倍数的个数,那么互质的数的个数为

\[\sum\limits_{d\mid x}\mu(d)cnt_d \]

时间复杂度 \(\mathcal{O}(\sum\limits_{i=1}^V{\sigma(i)})=\mathcal{O}(V\ln V)\)。

CF1773D Dominoes

黑白染色,若多米诺骨牌能完全铺满则二分图存在完备匹配。

由于题目规定了一开始存在完备匹配,则黑白点数量相同。所以删除两个同色点必然无解,记有用的点数量为 \(cnt\),则方案数为 \(2\times \binom{cnt/2}{2}\)。当 \(cnt>2000\) 时已经大于 \(10^6\),所以有用的点数其实 \(\leq 2000\)。

有解的方案不多,转为计算有解的。枚举删除的第一个点,再重新跑一次二分图匹配。若匹配数小于 \(cnt/2-1\),则该点是必经点,不存在有解方案。否则就是找二分图另一边非必经点的个数。

求解匹配必经点是经典问题:不妨设左部图较大。从左部每个非匹配点出发,遍历它的所有右部匹配点邻居对应的左匹配点,则所有被遍历到的左匹配点均为非必经点。因为从它们开始存在交错路径使得终点为非匹配点,将匹配边换成路径下一条边即可。

P6130 随机红包

一开始一直想用概率分布函数和密度函数算,发现算不出来。

其实可以直接算概率然后积分,反正就是要求出那个面积。

原问题等价于在 \([0,1]\) 上随机撒点,求第 \(k\) 小的线段的期望长度。

先从 \(k=1\) 开始算。设最短的那一段长度为 \(x\),则其它段的长度必须大于 \(x\),这可以看作所有段的长度减去 \(x\) 后再在 \(1-nx\) 上随机撒 \(n-1\) 个点。因此

\[P(x\leq L_{\min})=(1-nx)^{n-1} \]

那么

\[\begin{aligned}E(L_{\min})&=\int_{0}^{\frac{1}{n}}(1-nx)^{n-1}\mathrm{d}x\\&=-\dfrac{1}{n}(1-nx)^{n-1}\mathrm{d}(1-nx)\\&=-\dfrac{1}{n^2}(1-nx)^n\Bigg |_0^{\frac{1}{n}}\\&=\dfrac{1}{n^2} \end{aligned} \]

现在再来考虑 \(L_2\),这等价于把所有线段减去 \(L_{\min}\) 最短线段的期望长度再加上 \(L_{\min}\),因此

\[E(L_2)=\dfrac{1-nE(L_{\min})}{(n-1)^2}+E(L_{\min})=\dfrac{1}{n}\left(\dfrac{1}{n}+\dfrac{1}{n-1}\right) \]

同理

\[E(L_k)=\dfrac{1}{n}\sum\limits_{j=0}^{k-1}\dfrac{1}{n-j} \]

随便预处理一下即可通过。

[AGC032F] One Third

需要上一题的前置知识。

有一个很牛逼的转化,以第一刀为 \(x\) 轴正半轴将圆三等分,将 \([0,\frac{2\pi}{3})\),\([\frac{2\pi}{3},\frac{4\pi}{3}),[\frac{4\pi}{3},2\pi)\) 里的刀分别染成红色、绿色、蓝色,之后将它们的角度分别 \(\bmod \frac{2\pi}{3}\),就可以转化成下列问题:

在 \([0,\frac{1}{3}]\) 上随机选 \(n-1\) 个点,钦定 \(1\) 号点和右边界处的点异色,每个点三颜色随机,求异色点对的距离最小值。

考虑枚举答案是第 \(k\) 小的线段,那么要求前 \(k-1\) 条线段同色,容斥得概率为 \(\frac{1}{3^{k-1}}-[k<n]\frac{1}{3^k}\)。

因此

\[\begin{aligned}ans&=\dfrac{1}{3}\sum\limits_{i=1}^n(\dfrac{1}{3^{i-1}}-[i<n]\dfrac{1}{3^i})E(L_i)\\&=\dfrac{1}{n}\sum\limits_{j=1}^n\dfrac{1}{3^j(n-j+1)}\end{aligned} \]

随便求即可。

标签:dots,二分,cnt,frac,记录,dfrac,sum,2024,杂题
From: https://www.cnblogs.com/xishanmeigao/p/18040381

相关文章

  • 2024.01.18
    然后打开IntelliJIDEA在File中找到Open双击进入之后进入OpenFileorProject中,然后一步一步按照自己要导入项目文件所在位置进行查找,然后点击ok 之后会弹出一个小的页面,让选择是在这个窗口打开(ThisWindow),还是在一个新的窗口打开(NewWindow)。(选那个都可以),我一般是选择在......
  • 2024.01.27
    idea中SQL语句经常提示SQLDialectisNotConfigured,主要是我们没有配置数据库在File---->Setting--->Languages&Frameworks--->SQLDialects中,选择对应的数据库,如MySQL,之后点击保存即可。这样的一个好处还有一个,就是idea直接可以识别你数据库中的字段了,按着ctrl然后点击代码......
  • 2024.02.01
    一些常见的状态码为:200–服务器成功返回网页404–请求的网页不存在503–服务器超时1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议)请求者已要求......
  • 2024.02.07
    模拟器卸载安装的APP的方法在做安卓的实验时遇到了一个问题需要在模拟器卸载APP,找了网上很多资料发现没有用,于是自己摸索解决了。以Pixel2API29为例1、打开模拟器,点击更多2、点击帮助(Help)3、找到菜单的快捷命令4、退出到原始的模拟器页面,输入对应的快捷键(即,Ctrl+M)出现......
  • 20240228随笔
    人生是一场旅程,我们每个人都在这个旅程中前行,经历着各种各样的事情。有些事情让我们感到快乐和幸福,有些事情则让我们感到痛苦和失落。但是,无论是好是坏,这些经历都是我们成长的一部分。在我的旅程中,我遇到了很多人和事情,有些给我留下了深刻的印象,有些则已经逐渐模糊。但是,我相信每......
  • GDOI2024 考前模拟2 T2
    题目描述题解考虑黑用\(1\)表示,白用\(0\)表示,那么Alice要赢,就意味着每条边\(x\rightarrowy\)等价于\(clr[x]\leclr[y]\)。连边也就是\(\le\)的关系。不妨编号从\(0\)开始,题目的染色方式则意味着\(clr[x]\neqclr[x\bigoplus1]\)。那么原图里有\(x\rightarrow......
  • 2024年2月深度学习的论文推荐
    我们这篇文章将推荐2月份发布的10篇深度学习的论文BeyondA*:BetterPlanningwithTransformersviaSearchDynamicsBootstrapping.https://arxiv.org/abs/2402.14083Searchformer是一个基于Transformer架构的人工智能模型,经过训练可以模拟A星寻路算法,在复杂的规划任务中实......
  • 【2024-02-19】连岳摘抄
    23:59莺初解语。最是一年春好处。微雨如酥。草色遥看近却无。休辞醉倒。花不看开人易老。莫待春回。颠倒红英间绿苔。                                                 ......
  • 杂记 2024-02-28 周三 将两个表合成一个表,列数为原两表之和,以增加表的列数
    --将person_info和field_data合成一个表droptablejoe.combinedtable01;CREATETABLEjoe.combinedtable01(idvarchar(50),identifycardvarchar(50),cellphonevarchar(50),c1varchar(20),b2bigint,addressvarchar(50),PRIMARYKEY(id));insertintojoe.c......
  • 【2024-02-20】学校要搬
    20:00在生活中,所有的人都有段温情,这能帮助人生活下去。人在感到心灰意冷的时候,就缅怀那段温情。                                                 ——加缪比法定春......