CSP-S 2024 第九次

A

\(f_{i,S}\) 表示考虑前 \(i\) 行,选出的矩形在第 \(i\) 行上形成 \(S\) 中的区间的方案数,

每行的 \(S\) 只有 \(O(2^m)\) 种,总复杂度 \(O(n2^{2m})\)

B

考虑先修改再查询怎么做。

考虑左下角为 \((x_1,y_1)\),右上角为 \((x_2,y_2)\) 的矩形,发现斜率在 \(\left[\dfrac{y_1}{x_2},\dfrac{y_2}{x_1}\right]\) 内的向量会穿过它,

考虑扫描斜率,扫到 \(\dfrac{y_1}{x_2}\) 时加入这个矩形,扫到 \(\dfrac{y_2}{x_1}\) 时删除它,则扫到一个向量的斜率时已经加入了所有其能穿过的矩形。

考虑一个向量 \((\Delta x,\Delta y)\) 能穿过的、左下角在 \((x,y)\) 的矩形,则这个向量需要延伸 \(\max\left(\dfrac x{\Delta x},\dfrac y{\Delta y}\right)\) 倍才能碰到它,

要求向量碰到的第一个矩形,即要求向量能穿过的、\(\max\left(\dfrac x{\Delta x},\dfrac y{\Delta y}\right)\) 最小的矩形。

考虑分讨掉这个 \(\max\)。对于 \(\dfrac x{\Delta x}>\dfrac y{\Delta y}\iff\dfrac yx<\dfrac{\Delta y}{\Delta x}\) 的矩形,只需求 \(\dfrac x{\Delta x}\) 的最小值,也就只需求 \(x\) 的最小值,

对于 \(\dfrac x{\Delta x}<\dfrac y{\Delta y}\iff\dfrac yx>\dfrac{\Delta y}{\Delta x}\) 的矩形,只需求 \(\dfrac y{\Delta y}\) 的最小值,也就只需求 \(y\) 的最小值。

\(\dfrac yx\) 为下标对加入的所有矩形建权值线段树,维护区间 \(x,y\) 最小值即可。

然后这个题不是先修改再查询,套个 CDQ 变成先修改再查询即可。

C

选到每个鸽笼的概率会随着鸽笼的填满而变化,这个不太好处理,所以先用拒绝采样转化下题意:

每次可以选任意一个鸽笼,这个鸽笼满了就再选一个。记下每次选择的鸽笼作为操作序列。

考虑对 \(i\) 算答案。考虑容斥,把答案看成恰好 \(0\) 个鸽笼比 \(i\) 更晚填满的概率,

\(g(S)\) 表示钦定 \(S\) 中鸽笼比 \(i\) 更晚填满的概率,则答案为 \(\sum\limits_{S\in U-\{i\}}(-1)^{|S|}g(S)\)

钦定 \(S\) 中鸽笼比 \(i\) 更晚填满,实际上就是操作序列上 \(S\) 中每个数都在 \(i\) 的最后一次出现后出现过,

也就是 \(\forall j\in S\)\(j\)\(i\) 的最后一次出现前出现小于 \(a_j\) 次。

考虑只留操作序列中,\(i\) 的最后一次出现前的 \(i\) 以及 \(S\) 中的数,求满足条件的方案数除以总方案数。

\(i\) 比较特殊,必须出现 \(a_i\) 次,所以我们先不填 \(i\)

\(f_x\) 表示当前在操作序列中填入 \(x\) 个数的方案数,每次对于一个 \(j\in S\) 考虑填入 \(k\)\(j\),则有转移 \(f_x\gets f_{x-k}{x\choose k}(k<a_j)\)

填完长度为 \(x\) 的操作序列后,有 \({x+a_i-1\choose a_i-1}\) 种填 \(i\) 的方案(因为 \(i\) 的最后一次出现一定在最后),

所以在操作序列中填入 \(x+a_i\) 个数的满足条件的方案数为 \(f_x{x+a_i-1\choose a_i-1}\)

而如果不需要满足条件,每个数都可以随便填,所以在操作序列中填入 \(x+a_i\) 个数的总方案数为 \((|S|+1)^{x+a_i}\)

所以 \(g(S)=\sum\limits_{x}\dfrac{f_x{x+a_i-1\choose a_i-1}}{(|S|+1)^{x+a_i}}\)。(\(x\) 不会很大,最多只有 \(a_i+\sum\limits_{j\in S}(a_j-1)\)

考虑同时计算大小相同的 \(S\)\(g\) 值。设 \(f_{o,x}\) 表示除 \(i\) 外填入了 \(o\) 种数(即 \(|S|=o\)),且填入了 \(x\) 个数的方案数,

则有转移 \(f_{o,x}\gets f_{o-1,x-k}{x\choose k}(k<a_j)\)

则答案为 \(\sum\limits_{S\in U-\{i\}}(-1)^{|S|}g(S)=\sum\limits_{o=1}^{n-1}(-1)^o\sum\limits_{|S|=o}g(S)=\sum\limits_{o=1}^{n-1}(-1)^o\sum\limits_{x}\dfrac{f_{o,x}{x+a_i-1\choose a_i-1}}{(|S|+1)^{x+a_i}}\)

发现这个转移是背包的形式,所以一开始可以先把所有物品装进背包,求 \(i\) 的答案时把 \(i\) 拿出来。复杂度 \(O(n^5)\)

D

最大值最小,考虑二分答案 \(k\)

两个人至少有一个停在点上的那档部分分,直接设 \(f_{x,y}\) 表示可不可能一个人在 \(x\),一个人在 \(y\),BFS 转移即可。

但是他们可能停在边上。所以在每条边上加一个点,一个人在这个点上就代表他停在这条边上,然后就同上了。

转移时需要算点线距和线线距,合理利用点乘叉乘即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809215.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解异常和中断(Cortex-M3)

异常和中断的深入了解对于调试很有用,也非常有助于对RTOS的理解,本文是阅读Cortex-M3权威指南和ST、ARM的技术文档,总结出比较精炼的文档。中断一般是由硬件(如外设和外部输入引脚)产生的事件。异常一般指CPU内部产生的打断。但是,也可以把中断称为一种异常我们一般称为系…

深入理解异常和中断

异常和中断的深入了解对于调试很有用,也非常有助于对RTOS的理解,本文是阅读Cortex-M3权威指南和ST、ARM的技术文档,总结出比较精炼的文档。系统异常和外部中断中断一般是由硬件(如外设和外部输入引脚)产生的事件。异常一般指CPU内部产生的打断。但是,也可以把中断称为一种…

ch被动扫描学习

在渗透测试中,被动扫描就像斥候一样担任前驱搜查的任务,帮助后续的渗透攻击等的深入推进提供十分重要的信息。当然,正如一双锐利的眼和好的侦查工具是一名优秀侦察兵的标配,在进行渗透测试的时候,优秀的搜索引擎就是信息收集者的”夜行衣”和“望远镜”。借助它们我们可以…

Nuxt.js 应用中的 app:suspense:resolve 钩子详解

title: Nuxt.js 应用中的 app:suspense:resolve 钩子详解 date: 2024/10/6 updated: 2024/10/6 author: cmdragon excerpt: app:suspense:resolve 是一个强大的钩子,允许开发者在异步数据解析完成后的最后一步执行必要的处理。通过合理使用该钩子,我们可以优化组件的渲染…

多校A层冲刺NOIP2024模拟赛02 csp-s模拟9

多校A层冲刺NOIP2024模拟赛02 四道题因为暑假被拉去当模拟赛 暑假集训CSP提高模拟22 了,遂直接把赛后代码交了上去,然后就被通知换题了。 原 \(100+100+100+20\) 被在 accoders NOI 上被卡成了 \(100+100+90+10\) ,更改 long long 和 int 后达到了 \(100+100+100+30\) 。 \(…

败者树、置换选择排序、最佳归并树

败者树败者树用一个数组即可实现,而且,上图中的那些方块所代表的结点是不存储在败者树中的置换选择排序 置换选择排序的目的是构造出比工作区更长的初始归并段,而更长就意味着初始归并段会更少,可能会减少归并的趟数,进而减少读写磁盘次数来优化排序时间。 置换选择排序的…

Codeforces Rund 977 div2 个人题解(A~E1)

Codeforces Rund 977 div2 个人题解(A,B,C1,C2,E1) Dashboard - Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round) - Codeforces 火车头 #define _CRT_SECURE_NO_WARNINGS 1​#include <algorithm>#include <array>#include <bitset>#inc…

ide启动多个实例

ide启动多个实例 方法一: ide 2022.X及之后 Run=> Edit Configurations=> 选中项目=> “Build and run”栏=> Modify Options=> 选中“Allow multiple instances”然后就可以run多次项目了 但是要主要改端口 方法二: 先把项目打包,然后启动多个terminal,每个…

周鸿祎:用这10条打造你的完美的商业计划书(附详细讲解)

转载:周鸿祎:用这10条打造你的完美的商业计划书(附详细讲解)_产品 (sohu.com) 江湖上流传着一篇“360大佬周鸿祎版10页商业计划书PPT”,高屋建瓴的讲述了BP制作框架,很有价值。诚然,一个形式上外观精美,具有上有吸引力的BP让人赏心悦目,但更重要的还是有实实在在的内容…

DiLiGenT光度立体数据集

本文对DiLiGenT光度立体数据集进行了详细介绍。简介 ”DiLiGenT“ 光度立体数据集,全称为 calibrated Directional Lightings, objects of General reflectance, and ‘ground Truth’ shapes (normals),即使用标定过的定向光源,对一些具有常见反射率特性的物体进行光度立体…

Pool Kings All In One

Pool Kings All In One 泳池之王 Pool Kings - Mountain Paradise / 泳池之王 - 山间天堂 Utah waterfall MountainPool Kings All In One泳池之王demosPool Kings - Mountain Paradise / 泳池之王 - 山间天堂Utah waterfall Mountainhttps://vimeo.com/233842674 https://www.…

CHT

水电费是否收到fwe】今天探索一下CTH的电脑 PEPPA PIG放映室!tm的图怎么死了