首页 > 其他分享 >nb 的题单

nb 的题单

时间:2024-09-18 22:04:16浏览次数:10  
标签:le max nb 栈顶 决策 ge 复杂度 题单

link

完成度:\(4/50\)。

335.P9293 [ROI 2018] Addition without carry

二分答案,判断当前位是否能为 \(0\),然后钦定后面位全是 \(1\),这样匹配一定最优。

假设当前 \(\max a_i=A\),填到第 \(B\) 位,讨论:

  • 若当前位是 \(0\):
    • 若 \(|A|\ge B\),无解;
  • 若当前位是 \(1\):
    • 若 \(|A|>B\),无解;
    • 若 \(|A|=B\),删掉 \(A\),加入 \(A-2^B\);
    • 若 \(|A|<B\),直接删掉 \(A\);
  • 当 \(a_i\) 为空时有解。

考虑 \(a_i=2^{k_i},k_1\ge k_2\ge \cdots \ge k_n\),则最优解中 \(\sum b_i\) 的最高位 \(L_b=\max_{i=1}^{n}(k_i+i-1)\)。

证明:必要性,\(i\) 前面的数至少要一位来填;充分性,取 \(b_i=2^{l_b-i+1}\ge 2^{k_i}\),一定可行。

由此推广到普遍情况,设 \(2^{k_i}\le a_i<2^{k_i+1}\),则 \(L_b\ge \max_{i=1}^{n}(k_i+i-1)\),令 \(a_i=2^{k_i+1}\),有解,则 \(L_b\le \max_{i=1}^{n}(k_i+i)\)。

每次判断一个 \(L_b\),找到取到 \(\max\) 对应的 \(k_t\),首先 \(k_1,\cdots k_{t-1}\),一定是直接删除,\(k_t\) 判断一下就好了,就能转化为 \(L_b\) 更小的一个子问题。

一种递归,我们可以先判断 \(L_b=\max_{i=1}^{n}(k_i+i-1)\) 是否有解,若无解就考虑 \(L_b=\max_{i=1}^{n} (k_i+i)\)。

我们需要预处理 \(a_i\) 的所有后缀的排名,每次查询区间 \(\max\),加入删除支持区间加,还要知道每个数第二个 \(1\) 对应的后缀。

时间复杂度 \(\mathcal O(\sum L_i\log (\sum L_i))\)。

若 \(h=h_0\) 失败,由于 \(k_t-1=h_0'\ge k_{t'}\),最多递归 \(\mathcal O(k_t)\) 次,然后移除 \(k_t\)。

所以我们统计递归失败的总复杂度,即左右儿子都不合法的时间复杂度,而如果 \(h_0\) 失败,会先花费 \(\mathcal O(k_t)\),然后 \(t\) 这个串直接消失,所以左右儿子都不合法的每一个串都是不同的,太nb了,复杂度得证。!!

336.P10573 [JRKSJ R8] C0mp0nents

很妙的题。

可以想到将 \(\bmod k\) 同余的点和边一起处理,转化为 \(k=1\) 的情况。

思考这个转化的过程,“感染”,某个 \(x\) 与 \(x+1\) 相邻,那么 \(x\) 变为 \(x+1\),然后这个联通块与 \(x+2\) 相邻,再将 \(x+2\) 加入联通块。

反过来同理,感染的过程可以分成两个部分,\(<s\) 的变为 \(s\),大于 \(s\) 的变为 \(s\),分别独立。

以从小往大染色为例,考虑找到若干极大关系对 \((x,y)\),使得从 \(x\) 开始染最大可以染到 \(y\),若两个关系对有交,可以合并成更大的关系对,于是 \(1\sim n\) 可以转化为若干极大关系对 \((l1_i,r1_i)\)。

同理从大到小处理出极大关系对 \((l2_i,r2_i)\)。

找到 \(l1_i\le s\le r1_i\),\(l2_j\le s \le r2_j\),记 \(L=l1_i,R=r2_j\)。

  • 若 \(L<s<R\),则答案为 \(R-L+1\);
  • \(L=s=R\),则答案为 \(1\);
  • 若 \(L=s<R\),这个情况比较特殊,将 \([s,R]\) 的点全部变为 \(s\),那么 \([l1_{i-1},r1_{i-1}]\) 的点,先变为 \(s-1\),可能可以与 \([s,R]\) 合并,判断 \([l1_{i-1},r1_{i-1}]\) 与 \([s,R]\) 是否有连边即可;
  • 若 \(L<s=R\),同理。

判断可以二维数点做,也可以直接暴力(???),好像说复杂度是对的。!!

337.P10861 [HBCPC2024] MACARON Likes Happy Endings

一看就是个划分序列问题,一看就满足四边形不等式,于是有决策单调性。

!!!注意,对每一维 \(k-1\to k\) 进行分治!!!即可,是对的。

记录一种反四边形不等式

即包含优于交叉,则每个决策点只会被之前的决策点反超。

https://www.cnblogs.com/Jue-Fan/articles/18116228#概述另一种凸优化

用二分栈优化,栈内存最优决策点。

若次栈顶超过栈顶的时间 \(\le\) 栈顶超过 \(i\) 的时间,那么弹出栈顶。

加入决策点 \(i\)。

如果次栈顶超过栈顶的时间 \(\le p_i\),那么一直弹出栈顶。

“二分栈的写法需要注意!!”

\(w(l,r),w2(l,r)\) 满足四边形不等式,那么 \(a\cdot w(l,r)+b\cdot w2(l,r)\) 也满足。

注意,分治只能解决离线的决策单调性!!!

不过现在还没弄清楚决策点的顺序,每个决策点只会被之前的决策点反超,是什么意思??》???

哦,好像懂了。

设 \(f_i\) 的最优决策点是 \(s_i\),那么后续点的最优决策点不可能出现在 \((s_i,i)\)。

338.P5244 [USACO19FEB] Mowing Mischief P

考虑转化为一维问题来做,相当于价值最小的最长上升子序列。

我们记点 \(i\) 的类型为以 \(i\) 结尾的最长上升子序列长度,则关于价值的转移发生在相邻两个类型中,且满足二维偏序。

注意到同一类型中,当 \(x\) 单增时,\(y\) 单减,则满足二维偏序的是一段区间。

考虑权值函数,并不能斜率优化,考虑决策单调性,发现是反四边形不等式,但是每个点有维度的转移限制。

相邻两个类型转移时,考虑将前者插入线段树区间(后者对应的区间)上,注意到此时并没有每个点需要转移到后面的点的限制(因为这两者已经是不同类了),所以可以直接分治,具有决策单调性,\(i<j,p_i\ge p_j\)。

标签:le,max,nb,栈顶,决策,ge,复杂度,题单
From: https://www.cnblogs.com/orzz/p/18419412

相关文章

  • Rainbow Bracket Sequence
    括号序列匹配+最优化问题+一系列限制条件+较小的数据范围=最小费用最大流模型拆点难以解决重复的问题,既然如此那就不拆点了,用流向代表左右括号的选择每一次bfs,总流量增加,总费用也是增加的,但是退流的边还是要归还费用【直觉就不对劲呀,多想一下吧】注意,当li的限制超过节点总数时......
  • cnbic4_1.dll 缺失:快速修复指南
    cnbic4_1.dll是一个动态链接库文件,通常与某些特定的应用程序或驱动程序相关。具体来说,这个DLL文件可能是由中国银行或其他金融机构提供的网银控件的一部分,用于支持网上银行功能,如数字证书验证、交易认证等。如果cnbic4_1.dll缺失,可能会导致相关应用程序无法正常工作。以......
  • 【数据结构与算法 | 灵神题单 | 自底向上DFS篇】力扣965, 2331, 100, 1379
    1.力扣965:单值二叉树1.1题目:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例1:输入:[1,1,1,1,1,null,1]输出:true示例2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是 [1,......
  • 【数据结构与算法 | 灵神题单 | 自顶向下DFS篇】力扣1022,623
    1.力扣1022:从根到叶的二进制之和1.1题目:给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0->1->1->0->1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出......
  • 聊聊OceanBase合并和转储
    相比于Oracle、MySQL等传统的数据库,OceanBase数据库的存储引擎采用LSM-Tree的架构,这种存储引擎和之前所使用到的堆结构或B+树结构有很大的差别,今天我们就来聊聊LSM-Tree存储引擎所引入的合并和转储相关的功能特点。OB存储引擎的分层结构LSM-Tree存储引擎分为静态基......
  • 洛谷题单指南-分治与倍增-P2415 集合求和
    原题链接:https://www.luogu.com.cn/problem/P2415题意解读:计算集合所有子集中元素之和。解题思路:集合的特性:互异性,元素各不相同来看样例:23,可以组成的子集有空23232和3都出现2次再比如:123,可以组成的子集有空12312 13231231,2,3各出现4次由于在集合中......
  • 洛谷题单指南-分治与倍增-P7167 [eJOI2020 Day1] Fountain
    原题链接:https://www.luogu.com.cn/problem/P7167题意解读:从喷泉任意一个圆盘倒水,水流经的圆盘直径必须递增,水最后流到哪个圆盘。解题思路:1、枚举法有30%的数据范围在N<=1000,Q<=1000,因此枚举也可以得到30分。可以通过单调栈预计算每个圆盘后面第一个直径更大的圆盘位置Next[......
  • OpenCV(cv::GaussianBlur())
    目录1.函数定义2.高斯模糊原理2.1高斯核\((3\times3)\)2.1.1高斯核的创建2.1.2卷积操作2.1.3边界处理2.1.4完成模糊处理2.1.5总结2.2高斯核\((5\times5)\)3.示例4.高斯核的生成5.高斯模糊的应用场景6.高斯模糊与其他模糊方式的对比7.总结cv::GaussianBlur()......
  • 什么是 Rainbond?打破 Kubernetes 的复杂性
    近年来,随着云原生技术的快速发展,Kubernetes已经成为容器编排的标准。然而,尽管Kubernetes功能强大,它的复杂性也成为了众多开发者和运维人员的一大挑战。对于那些希望专注于应用开发的团队来说,学习和管理Kubernetes可能是一个高昂的学习成本,尤其是在中小企业中,开发者并没有足够......
  • 如何通过OceanBase的多级弹性扩缩容能力应对业务洪峰
    每周四晚上的10点,都有近百万的年轻用户进入泡泡玛特的抽盒机小程序,共同参与到抢抽盲盒新品的活动中。瞬间的并发流量激增对抽盒机小程序的系统构成了巨大的挑战,同时也对其数据库的扩容能力也提出了更高的要求。但泡泡玛特的工程师们一点都不慌。因为基于 OceanBase云数据库......