首页 > 其他分享 >2024.5 做题记录

2024.5 做题记录

时间:2024-05-09 22:14:11浏览次数:14  
标签:2024.5 容量 记录 源点 汇点 最小值 我们 一扇门

2023.5 做题记录

[Violet] 天使玩偶

显然发现我们需要在时间轴上进行 cdq 分治,然后统计答案。

问题在于这个绝对值不好维护,需要进行转化。如果我们钦定这个点最近的点在它的左下方,那么绝对值就可以化为 \(dis(A,B)=(A_x-B_x)+(A_y-B_y)=(A_x+A_y)-(B_x+B_y)\)。显然前面的括号是定值,那么我们维护 \(B_x+B_y\) 的最大值即可。这个可以用树状数组简单做。

但是显然我们最后的答案不一定在左下方,还可能在其他四个方向。那么我们每次做完 cdq 就把整个坐标系旋转 \(90\degree\),然后再次 cdq 即可。

[CTSC2018] 混合果汁

首先发现题目中有最小值最大的含义,可以想到二分。我们二分这个最小值,那么接下来我们就考虑买 \(d_i\ge mid\) 的果汁。此时再利用贪心,由于选价格小的一定更优,所以我们再按 \(p_i\) 排序依次选。此时会出现三种情况:钱没有花完就达到了体积要求、钱花完了没有达到体积要求、所有果汁买完了也达不到体积要求。

对于第一种情况我们增加最小值,否则减少最小值。但是这样做 check 的复杂度似乎较高。

考虑到朴素的二分时间主要花费在 check 上,那我们考虑缩小 check 的时间。首先对于第三种情况,我们可以十分简单的利用前缀和求解。同时,第二种情况的另一种表述就是 “达到体积要求的钱数大于当前钱数”,那么我们只需要再维护 “达到体积要求的最小钱数” 即可。

考虑使用线段树,以 \(d_i\) 为下标,存储总体积之和和价格之和。那么前缀和便可以解决。现在考虑怎样在线段树上求 “达到体积要求的最小钱数”,我们可以在线段树上二分,以类似于查找排名的方式求解。

现在时间复杂度就是 \(O(n\log^2 n)\),做 \(m\) 次操作的复杂度就是 \(O(n^2\log^2 n)\),显然过不去。

这时候就可以考虑整体二分,把查询放一块处理,时间复杂度就变成 \(O(n\log ^2 n)\) 了,可以通过。

[SCOI2007] 蜥蜴

首先我们肯定想到是从一个柱子向另一个能跳的柱子连边,但是这样下来是错误的。

我们考虑到这张图的权值在点上,因此考虑拆点,将每一个点拆成入点和出点,这两个点之间的容量就是柱子高度。而对于两个点之间,将第一个点的出点与第二个点的入点连边,容量为 \(\infty\)。

接下来我们考虑源点和汇点。首先源点应该是每个蟋蟀在的柱子,但是这样会有多个源点,因此建立超级源点;同理,所有边框外的部分都是汇点,因此建立超级汇点。

由于每个柱子上只能放一只蟋蟀,因此超级源点到每个汇点的容量是 \(1\)。

最后我们直接跑最大流即可,答案需要用总蟋蟀数减去最大流流量。

士兵占领

首先看到方格问题,直接考虑连 \(x\to y\) 的边。

接下来我们发现题目要求的是最小值,由于我们只会最大流,因此这个最小值显然是做不了的。考虑转化,即求出空出的格子数量的最大值,这样我们就可以使用最大流了。

那么既然这样我们就要求出每一行每一列空出的格子数 \(r'_i,c'_i\)。接着我们建立超级源点,从源点到每一个 \(x\) 连容量 \(r'_x\) 的边;建立超级汇点,从每一个 \(y\) 向汇点连容量为 \(c'_i\)​ 的边。

那么既然这样我们上面提到的 \(x\to y\) 的容量自然就是 \(1\) 了。于是我们跑最大流,然后用 \(nm-k\) 把最大流流量减去即可。

[HNOI2007] 紧急疏散

这个题你的建图很容易假掉,然后这个题的数据还特别水,所以你的假做法大概能拿 \(50\sim 90\) 不等。

首先这道题是求出所有人撤离的最短时间,显然可以想到二分答案。我们假设当前要检查 \(mid\),那么我们的门就有了时间限制。

既然这样,我们就可以采用按照时间拆点的方式来做。我们将每一个门拆成第 \(1,2,\cdots,mid\) 秒的门,接下来我们考虑连边。

首先建立超级源点,给所有空地连容量 \(1\) 的边,这表示每一块空地上有一个人。

然后我们计算出每一个空地到每一扇门的距离(可以从门开始用 BFS 求解),对于每一块空地,向任意一扇门的对应所用时间连边,容量为 \(1\)。

最后建立超级汇点,每一扇门向汇点连容量 \(1\) 的边,因为一扇门每次最多进一个人。

但是这样会有一个问题,尽管一扇门每次最多进一个人,但是先来的人可以等,然后再进门。也就是说门的时间也应该是变化的。因此将每一扇门的每个时刻向下一个时刻连边,容量为 \(\infty\)。

然后我们直接跑最大流就可以求出有多少人逃离了。

标签:2024.5,容量,记录,源点,汇点,最小值,我们,一扇门
From: https://www.cnblogs.com/dzbblog/p/18183172

相关文章

  • 瑞萨问题排查记录
    P1当把RFD28F添加进项目时,报错如下:参考链接:https://www.sekorm.com/news/73776172.html栈溢出.textE0562330:Relocationsizeoverflow:"DefaultBuild\sample_control_codeflash.obj"-".text"-00000b(1)右键Subproject的CC-RH——LinkOptionsTab——S......
  • stm32 出现 hard fault 的排查记录
    参考链接:https://blog.csdn.net/qq_43118572/article/details/1327596261、先验知识先验知识1:cortexm3在中断/异常时,会把8个寄存器(xPSR、PC、LR、R12以及R3-R0)的值压入栈。入栈顺序以及入栈后堆栈中的内容如下(CM4是从低地址到搞地质):地址寄存器被保存的顺序......
  • 2024.5.10家长会发言
    大家好,我是初三四班的学习委员包赟瑞,接下来由我来对半个学期的班级学习情况做一个总结。整体来看,全班的学习态度有一定进步,布置的打卡任务大多能按时完成。但是不能仅仅满足于此,像政治这种需要背诵的学科,许多同学在课下不爱背、不愿背,没有老师监督便开始摆烂,类似这样的不自律行为......
  • SQL练习之打卡记录数据统计类问题
    最近老婆的公司,关闭了OA系统中,各类打卡时间数据统计的功能,为了不麻烦老婆手算,就做了一个简单的打卡系统,方便自动统计老婆想要知道的各类数据。做的过程中就遇到了几个还挺有意思的SQL,这里写成一篇博文,方便后期练习~Tip:需要答案的盆友可以访问参考答案的链接,密码是123456~建表......
  • #23 2024.5.7
    838.soj2066聚会839.soj2067重复序列840.soj2068白兔的村庄一个很厉害的题。841.soj2069量子计算842.soj2070字符串模板题厉害。843.soj2071美丽魔法844.soj2072moon845.soj2073为了你唱下去846.loj3523「IOI2021」分糖果847.loj3524「IOI202......
  • crawlergo学习.pdf 观看学习笔记的记录
    起因想学习爬虫的编写:看到大佬对一个爬虫项目,的学习笔记。跟着大佬的学习笔记学一遍项目地址:https://github.com/Qianlitp/crawlergo学习记录: 对浏览器环境的hook: 看到这个之前没见到过学习一波参考文章理解爬虫HOOK技术-掘金(juejin.cn)   通过hook,修改j......
  • 记录一次虚拟机非LVM扩容的操作
    以下操作都是在测试机上进行操作的操作系统:Centos7.5  所属平台:EXSI由于本地根目录容量太小只有20G,在关闭虚拟机后将硬盘容量更改到100G,重新启动虚拟机。由于没有LVM通过传统的方式进行扩容目标将sda5扩大 通过fdisk可以看到,sda是有100G的,然后我们需要将其中多余的......
  • CF516E 做题记录
    link纪念一下独立切的*3100的数论+贪心题,思考时的思路一波三折,像极了考试中的我。个人感觉难度至少*3300。考虑先求出\(d=\gcd(n,m)\),那么编号根据模\(d\)结果分成了\(0...d-1\)共\(d\)个部分,每个部分里的人不能和外面的人玩。因此当\(d>b+g\)时一定无解,......
  • 学习记录+vcode+GPIO例程+正点原子 DNESP32S3 开发板教程-IDF 版
    第一个程序:UART模式和JTAG模式,配置完成不同。配置主要就是.vscode文件夹中 c_cpp_properties.json,tasks.json,launch.json,settings.json四个文件。一个想法:备份UART模式和JTAG模式的配置文件,用时直接文件替换。简单粗暴方式是.vscode文件夹替换。当然每次要选好串口、设置目标......
  • 计网Quizzes学习记录
    写在前面这篇记录的是计网练习记录,包含错题和需要注意的点。网址点这里,直接进去改chapter后面的数字就可以换章chapter24TCPUDP虽然运输层数据分组被称作segment,但是UDP的分组常被称为数据报(datagram),UDP本身就是UserDatagramProtocol的缩写。UDP的首部是固定的8个......