首页 > 其他分享 >2024.5.6 近期练习

2024.5.6 近期练习

时间:2024-05-06 22:22:54浏览次数:25  
标签:2024.5 复杂度 练习 mid 近期 伐木场 每次 我们 子树内

P3354 [IOI2005] Riv 河流

如果我们设 \(f_{u,j}\) 表示子树 \(u\) 内放了 \(j\) 个伐木场的答案,发现很难转移。
我们多加状态,设 \(f_{u,i,j}\) 表示子树 \(u\) 放了 \(j\) 个伐木场,木材全部运到 \(i\) 去最小代价。\(i\) 是 \(j\) 祖先。
继续设 \(g_{u,i,j}\) 表示 \(u\) 建了伐木场,子树 \(u\) 放了 \(j\) 个伐木场,木材运到 \(i\) 去最小代价。
这是个背包的模型,合并儿子的答案即可。
事实上,\(v\) 转移到 \(u\) 的时候是用不到 \(g\) 的,我们用 \(g\) 把 \(f\) 更新即可,

P3565/P5904 [POI2014] HOT-Hotels(加强版)

简单版的话,我们可以先枚举两个点 \(u,v\) 出来。得到这两个点路径的中点 \(mid\)。
设 \(u,v\) 到 \(mid\) 的距离为 \(d\),那么我们要求的是到 \(mid\) 距离为 \(d\) 的点的个数(除去 \(u,v\))。
事实上,我们只需要计算 \(mid\) 为根,求距离为 \(d\) 的点的个数算贡献即可。
困难版我们无法这么算。为了避免算重,钦定一个根。设 \(f_{u,i}\) 表示 \(u\) 子树内距离 \(u\) 为 \(i\) 的点数,
\(g_{u,i}\) 表示 \(u\) 子树内还要一个距离 \(u\) 为 \(i\) 的点就可以形成三元组的二元组个数。转移显然。
计算答案有两种,一种是三个点都在 \(u\) 子树内的,一种是 \(2\) 的点在 \(u\) 子树内,一个在外。
然而这样还是 \(O(n^2)\)。因为状态数与深度有关,考虑长链剖分。
长剖的过程是这样的:每次直接继承重儿子的信息,合并轻儿子暴力。
由于每个点只会在重链顶端暴力合并,所以时间复杂度为 \(O(n)\)。
再用指针分配内存,做到空间复杂度 \(O(n)\)。

P10408 「SMOI-R1」Apple

其中一个 subtask 的做法是操作分块,每次询问直接暴力计算块内修改的贡献,每个块结束重构一遍。
回到正解,我们从 OR-FWT 的过程出发。
我们如果每次修改,都做一遍完整的 fwt,每一次就得 \(O(n2^n)\),然而查询 \(O(1)\),启示我们去平衡。
所以我们每次单点修改,都从分治树底向上做 \(n/2\) 层。
然后我们每次查询的时候,查询的是 \(x\),那么 \(x+k2^{n/2}\) 的点才能做贡献,继续分治上去即可。
已经完成平衡,每次操作复杂度是 \(\frac{n}{2}\cdot 2^{\frac{n}{2}}\)。

标签:2024.5,复杂度,练习,mid,近期,伐木场,每次,我们,子树内
From: https://www.cnblogs.com/Simon-Gao/p/18176058

相关文章

  • 0506C语言练习:字符串A中删除字符串B中所有相同字母等
    字符串A中删除字符串B中所有相同字母(无论大小写)/***@func: 字符串A中删除字符串B中所有相同字母(无论大小写)*@date2024/05/06*@version1.0:版本*CopyRight(c)[email protected]*/voidrepeat(char*a,constchar*b){......
  • 云原生周刊:Terraform 1.8 发布 | 2024.5.6
    开源项目推荐xlskubectl用于控制Kubernetes集群的电子表格。xlskubectl将GoogleSpreadsheet与Kubernetes集成。你可以通过用于跟踪费用的同一电子表格来管理集群。git-syncgit-sync是一个简单的命令,它将git存储库拉入本地目录,等待一段时间,然后重复。当远程存储库......
  • python实战练习题二
    """第一题:求解回文字符串回文是一个正读和反读都一样的字符串。例如:abcba12321是回文字符串hello123456不是回文字符串"""s=input("请输入字符串:")s2=s[::-1]#字符串逆序ifs==s2:print("{}是回文字符串!".format(s))else:pr......
  • python常见的实战练习题一
    """第一题:求解水仙花数水仙花数,也被称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrongnumber),是一个n位数(n≥3),其每个位上的数字的n次幂之和等于它本身。例如,三位数153是一个水仙花数,因为1^3+5^3+3^3=153。在三位数中,除了153,还有370、371和407也是水仙花......
  • 腾讯公益赛个人冲刺博客10(2024.5.6)
    今天测试多人联机整体效果    ......
  • 腾讯公益赛个人冲刺博客7(2024.5.1)
    今天处理sos的定位功能,但自动定位功能不稳定,需要手动定位importandroid.Manifest;importandroid.content.pm.PackageManager;importandroid.os.Bundle;importandroid.widget.Toast;importandroidx.annotation.NonNull;importandroidx.appcompat.app.AppCompatActivit......
  • 腾讯公益赛团队冲刺博客8(2024.5.2)
    未完成sos弹窗功能,在线医生、聊天室进行中sos弹窗功能已完成sos查看地图功能与弹窗功能、帮扶、登录注册、主页  ......
  • 腾讯公益赛团队冲刺博客7(2024.5.1)
    未完成sos地图定位功能和弹窗功能,在线医生、聊天室进行中sos的定位功能已完成sos的查看地图功能、帮扶、登录注册、主页  ......
  • 腾讯公益赛团队博客10(2024.5.6)
    未完成在线医生、聊天室功能进行中在多人手机端测试程序的可行性已完成sos、帮扶基本功能、登录注册、主页  ......
  • 腾讯公益赛团队冲刺博客9(2024.5.3)
    未完成在线医生、聊天室、多人弹窗进行中在线数据库的连接,保证不同的网络都可以连接到一个数据库已完成sos、帮扶的基本功能,登录注册和主页  ......