2023.9.20 随机化

HDU 6804

把一班的同学看做正数重量,二班的是负数重量,做一个背包。
把一班和二班的同学随机打乱,这样的话,计算中间的值域就不会太大,背包要计算的也缩小了。
可以看做是“随机游走”。

HDU 6242

由于题目要求的是 n/2 个点的圆心,我们随机取三个点求圆心,都取到这 n/2 个点中的概率是 18.

HDU 6413

考虑给每个值都赋一种颜色。由于要求路径里值的不同数量 k,那么颜色的不同肯定能带来值的不同。
我们每次随机颜色时,都做一遍 bfs,加一维状态,表示当前取了的颜色的状态。取满全部颜色就肯定取到 k 种的值。
考虑答案这些不同的值都分到不同颜色的概率,是 k!kk=0.006,失败概率是 0.994.
随机差不多 400 次,失败概率只有 0.09.

HDU 6379

首先乘法难处理,考虑取对数计算。
首先可以在环上枚举出发点,然后做一个 dp,每次 dp 是有决策单调性的,是 O(nk).
最后输出方案的话就是记录决策点,乘回去。
然而 k 如果很大呢?总的复杂度是 O(n2k) 的。
因为从答案的 k 个决策点任意一个出发做 dp 都是对的,
那么我们随机 G×nk 个点去做 dp,总的复杂度是 O(Gn2) 的。
G 是一个常数,取 10 左右即可。

Luogu P7146

随机的图可以发现环是不多的,考虑每个环删掉一条边形成树,枚举这些删掉的边的状态,再作树上 dp.

posted @   s1monG  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示