2025上半年

news/2025/1/16 18:35:03/文章来源:https://www.cnblogs.com/liaiyang/p/18675579

孩子们,正睿补习计划重启了。

自建题单:ZR 2022 summer B - Virtual Judge

P10447 最短 Hamilton 路径 - 洛谷 | 计算机科学教育新生态

求从 \(1\) 号点出发恰好经过每个点一次并且最终回到 \(1\) 号点的最短路径。

\(dp_{i,s}\) 表示恰好经过了集合 \(s\) 中的点一次,当前在 \(i\) 这个点。

转移就是 \(dp_{i,s\cup\{i\}}\leftarrow dp_{j,s}+w_{j,i}(i\not\in s,j\in s)\)

答案就是 \(\min dp_{k,\{1,2,...,n\}+w_{k,1}}\),时间复杂度 \(O(n\log n)\)

记录详情 - 洛谷 | 计算机科学教育新生态

Bin Packing - Gym 329414G - Virtual Judge

\(n\) 个物品,体积分别为 \(w_i\),求最少要多少个体积为 \(m\) 的袋子能装下,保证 \(w_i\le m\)

我们设 \(dp_{0/1,S}\) 表示包含集合 \(S\) 内的物品时最小袋子数与此时的最小体积。

那么我们考虑新加入一个物品时最小体积变化情况即可,记得一个物品不可以被拆开,只能一块留在剩余体积中。

时间复杂度 \(O(n2^n)\)

没权限看题面,去 vj 看提交记录吧。

DFSCount - TopCoder 14588 - Virtual Judge

给一张无向连通图,求 \(dfs\) 序个数。

我们设 \(dp_{i,S}\) 表示从点 \(i\) 出发,在集合 \(S\) 中的 \(dfs\) 序个数。

首先处理出来删去 \(i\) 后有多少个连通块,设有 \(k\) 个连通块集合 \(S_1,S_2,...,S_n\) ,则 \(dp_{i,S}=k!\prod_{i=1}^k\sum_{j\in S_i}dp_{j,S_i}\)

时间复杂度 \(O(n^22^n)\),这题不能交了。

P6192 【模板】最小斯坦纳树 - 洛谷 | 计算机科学教育新生态

给一张带权无向连通图,求将关键点连通的最小边权和。

首先一定会选出一棵树,我们给这个树随便定一个根,设 \(dp_{i,S}\) 表示以 \(i\) 为根,包含集合 \(S\) 内的关键点,最小代价。

首先可以枚举子集转移 \(dp_{i,S}\leftarrow dp_{i,S1}+dp_{i,S\setminus S1}(S1\subset S)\)

其次可以做转移 \(dp_{i,S}\leftarrow dp_{i,S}+w_{i,j}\),使用 dij 做最短路即可,注意一定要将所有点值都扔进堆。

时间复杂度 \(O(3^kn+2^km\log m)\)

记录详情 - 洛谷 | 计算机科学教育新生态

[P3959 NOIP2017 提高组] 宝藏 - 洛谷 | 计算机科学教育新生态

给一个图,求生成树最小代价,一颗生成树的代价为 \(\sum w_{(i,fa_i)}dep_{fa_i}\)

我们预处理 \(w_{S_1,S_2}\) 表示 \(S_1\)\(S_2\) 连边,要求 \(S_2\)\(S_1\) 构成单射,边权和最小值,可以通过补集子集枚举递推做到。

正常想法是设 \(dp_{S,S_1,d}\) 表示选择集合 \(S\) 的点,最后一层是 \(S_1\),深度为 \(d\)

转移考虑枚举 \(t\)\(S\) 补集的子集,然后最后一层向它连边,复杂度是 \(O(n4^n)\) 的。

我们考虑不记录最后一层,只要 \(t\)\(S\) 有连边即可。

这样可能算大答案,但是正确答案一定会被统计到。

证明这个可以考虑证明对于最优解的每一层,如果有某个点被它的更高的祖先连边,那么将这个点与那个祖先直接连边更优,且若这个点没有被连到那个祖先,那么一定连到了更优的位置,仍然不符。

这个证明的正确性是由于对于 \(w_{S_1,S_2}\) 中,\(S_2\) 的每个点之间是互不影响的。

时间复杂度 \(O(n3^n)\)

记录详情 - 洛谷 | 计算机科学教育新生态

[P5369 PKUSC2018] 最大前缀和 - 洛谷 | 计算机科学教育新生态

给一个序列,求它的所有排列的最大前缀和的和。

考虑对于某个排列,设位置 \(p\) 是第一个最大前缀和的位置,则 \(1\sim p-1\) 的后缀和全都 \(>0\)\(p+1\sim n\) 的前缀和全都 \(\le 0\)

\(F_{S}\) 表示集合 \(S\) 后缀和全都 \(>0\) 的排列的个数,\(G_S\) 表示集合 \(S\) 前缀和全都 \(\le 0\) 的排列的个数。

转移考虑处理 \(sum_S\) 表示集合 \(S\) 的权值和,判断总和是否合法,若合法就为所有与其差一位的子集的 \(dp\) 值的和。

答案即为 \(\sum_{S,i\in S}{F_{S\setminus \{i\}}G_{T\setminus S}}\)

记录详情 - 洛谷 | 计算机科学教育新生态

[P4547 THUWC2017] 随机二分图 - 洛谷 | 计算机科学教育新生态

给一张二分图,每条边在且仅在其中一种约束中:

  1. \(50\%\) 概率出现。
  2. 与另一条边捆绑,二者必须同时出现或消失,概率都为 \(50\%\)
  3. 与另一条边捆绑,二者必须且只能出现一条,概率都为 \(50\%\)

求所有图的出现概率乘上它的完美匹配个数之和。

由于期望的线性性,它就等同于求每个完美匹配的出现概率之和,对于每个完美匹配,它不含的边是不用考虑的,它的概率可看作 \(1\)

首先考虑只有约束 \(1\),设 \(dp_{i,S}\) 表示左部到了第 \(i\) 个点,右部匹配了集合 \(S\) 中的点的完美匹配的概率之和,转移枚举边即可。

考虑约束 \(2,3\),我们设 \(dp_{S_1,S_2}\) 表示左部匹配了 \(S_1\),右部匹配了 \(S_2\) 的完美匹配的概率之和。

考虑枚举每种转移 \((i,j,w)(i\cap S_1=\varnothing,j\cap S_2=\varnothing)\),有转移 \(dp_{S_1\cup i,S_2\cup j}\leftarrow w\times dp_{S_1,S_2}\)

这里的 \(i,j\) 是集合,方便下面转化,我们认为每条边都在 \(1\) 约束中,构建转移 \((\{a_i\},\{b_i\},\frac 1 2)\),此时我们对于 \(2,3\) 考虑巧妙转化。

对于 \(2\) ,如果只有一条在匹配中,那么另一条是可以不用管的,反正都会被算成 \(\frac 1 2\),两条都不在匹配中的话也不用管它。

如果两条都在匹配中,会被算成 \(\frac 1 4\),新增一个 \((\{a_1,a_2\},\{b_1,b_2\},\frac 1 4)\),由于期望的线性性,我们就会把两边的概率算成 \(\frac 1 4 +\frac 1 4 =\frac 1 2\)

对于 \(3\) 是同理的,对于两条都出现,我们新增一个 \((\{a_1,a_2\},\{b_1,b_2\},\frac 1 4)\)的转移,这样转移两边概率就会算成 \(\frac 1 4 -\frac 1 4=0\)

由于 \(dp\) 添加边的顺序不同不能被看做多种方案,我们强制钦定每次只选择 \(i\) 包含左部图第一个没被匹配的点与右部图匹配转移。

复杂度看着是 \(O(m2^n)\) 的,但实际上状态数的左右部图需要相等,是 \(\sum\binom{n}{i}^2=\sum\binom{n}{i}\binom{n}{n-i}=\binom{2n}{n}\) 的,使用记忆化搜索可以通过。

image

记录详情 - 洛谷 | 计算机科学教育新生态

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

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

相关文章

Agent FFT

Agent FFT请你根据 https://www.cnblogs.com/CDOI-24374/p/17733240.html 这篇文章,仿照写一个好的,以下是一篇仿照《Azune FFT》风格的文章: Azune FFT:异界之战 可能是 Azune 童话系列。感谢 int_R 提供灵感与素材,让奇幻之光照亮一切! ——题记 「报告,INQ。已抵达 …

2025/1/16

今天继续学习了Android开发的相关知识,做手机端的app今天学的是用xml文件控制页面,类似javaweb里面的前端,有许多标签,还解决了运行卡退的一个小问题,需要定义一个主题。

CICD Day9、Argo CD增强持续交付

1、Argo CD简介在Jenkins CI/CD流程中的持续交付阶段,既部署到k8s集群阶段,使用kubectl工具来进行应用程序的部署和更新操作,但这种方式无法实时跟踪应用程序的状态。这将造成用户在CI/CD流程完成后需要额外操作kubernetes集群,以进一步查看应用程序的状态。为了解决这些问…

专为高性能计算和低功耗应用设计的MPF100T-1FCVG484E MPF100TL-FCSG325E MPF100TL-FCVG484I PolarFire FPGA产品系列

‌MPF100TL-FCG484E PolarFire FPGA是Microchip推出的一款高性能、低功耗的FPGA产品系列,特别适用于各种需要高性能计算和低功耗的应用场景‌。‌PolarFire FPGA是Microchip推出的一款高性能、低功耗的FPGA产品系列,特别适用于各种需要高性能计算和低功耗的应用场景‌。这些器…

wordpress 从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。此响应不是合法的JSON响应。解决方法.210721

两种报错方式: 1.此响应不是合法的JSON响应。 2.从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。 情况:媒体服务器上传小文件没问题,大一点的文件报这个错误。 原因:这是因为nginx限制了请求体大小 方案:需要在nginx的虚拟机配置文件中添加…

docker containner挂掉,无法exec进入bash,如何修改文件的终极解决方法.210730

场景: Nginx在bash里面配置的时候挂掉了,然后docker start不起来,exec bash进不去,造成无法再改里面的文件了 解决方法: 1,docker ps –a 可以查到所有docker,包括没有运行的,找到containner ID [root@hecs-29489 ~]# docker ps -a CONTAINER ID IMAGE COMMAND…

HP惠普笔记本重装系统无法引导无法进操作系统的终极解决方法.210804

F9进入BIOS-先进(Advanced)-安全引导配置- 启用传统支持和禁用安全引导.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width: 280px; padding: 0px 0px 50px 0px } .zsleft { float: left } .zsdiv { display:…

Feign与SpringCloud LoadBalancer实现负载均衡源码分析

SpringCloud LoadBalancer 众所周知,SpringCloud体系中负载均衡的组件有SpringCloud LoadBalancer和Ribbon,Ribbon也在逐渐的被替代掉,因为SpringCloud LoadBalancer性能更高,支持响应式 下面通过hard-coded体现一下SpringCloud的负载均衡 首先有一个【say-hello】服务,提…

JS — 判断语句与循环语句

js的判断语句与循环语句...(* ̄0 ̄)ノ判断语句JavaScript中的if-else语句与C++、Python、Java中类似。直接输出到控制台:test.html中的内容为: <script type="module">let score = 90;if (score >= 85) {console.log("A");} else if (score &g…

Living-Dream 系列笔记 第92期

最小路径点覆盖 在一张 DAG 上,求一个路径的集合,使得它们两两不相交,且覆盖所有的点。 结论:答案即为 \(总点数-最大匹配\)(于是 \(总点数-最大匹配=总点数-最小点覆盖=最大独立集=最大团=最小路径点覆盖\))。 证明: 不妨转换角度,从研究路径转为研究点。 因为路径两两…

毕设学习第四天之Java的注解和反射

注解(Annotation) Java 注解(Annotation)是一种特殊的语言构造,用于为代码元素(如类、方法、字段等)提供元数据,通常不直接影响程序的逻辑执行。它们可以被编译器、框架或工具解析,用于执行特定操作,如自动化配置、代码生成、验证等。Java 提供了内置的注解(如 @Overr…

Docker安装wikijs wiki系统.210818

1. 拉取mysql8的镜像并运行 docker pull mysqldocker run -d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d --name mysql -e TZ=Asia/Shanghai -e MYSQL\_ROOT\_PASSWORD=1234 -p 3306:3306 mysql:latest2. 进入mysql,创建并修改权限 docker…