摘要: 先考虑朴素的暴力,设 \(f_{k,i}\) 表示前 \(i\) 个数划分为 \(k\) 段的最小代价,有 \(f_{k,i}=\min_j\{f_{k-1,j-1}+w(j,i)\}\) ,其中, \(w(x,y)\) 表示 \([x,y]\) 中相同元素的对数。 可以先在外层枚举 \(k\) , 阅读全文
posted @ 2025-09-29 21:54 PenguinJ 阅读(3) 评论(0) 推荐(0)
摘要: 题意:有一个数轴, \(Q\) 次操作,三种操作类型: 1.在位置为 \(x\) 处插入权值为 \(w\) 的数,不会在有数的位置重复插入。 2.删除位置 \(x\) 处的数,保证删前 \(x\) 处有数。 3.给定位置 \(x\) ,对于一个数轴上有数的位置 \(y\) ,定义其价值为 \(\fr 阅读全文
posted @ 2025-09-29 21:50 PenguinJ 阅读(4) 评论(0) 推荐(0)
摘要: 题意:单点修改与查询前缀最大值个数。 维护 \(ans_k\) 为区间 \([l,r]\) 的答案,怎么由 \([l,mid]\) 和 \([mid+1,r]\) 合并?显然可以直接把左区间的答案加上去,考虑右区间的贡献,右区间的一个前缀最大值,只有它大于左区间的最大值才能对答案有贡献,记这个贡献为 阅读全文
posted @ 2025-09-29 21:49 PenguinJ 阅读(6) 评论(0) 推荐(0)
摘要: 题意 构造一棵有 \(n\) 个节点的二叉树,使所有点的深度之和为 \(d\),根节点为 \(1\),根节点深度为 \(0\)。 思路 深度之和达上界时树为链的形态,达下界时为满二叉树的形态。考虑初始先构造一条链,逐步向满二叉树的形态调整。 代码 #include<bits/stdc++.h> us 阅读全文
posted @ 2025-09-29 21:48 PenguinJ 阅读(5) 评论(0) 推荐(0)
摘要: 题意 一棵有 \(n\) 个点的树,对于一条边,记该边深度较大的一个端点为 \(u\),该边的权值为 \(\sum 2^v\),其中 \(v\) 是 \(u\) 的子树中的点的编号。按边权从大到小的顺序给出每条边的深度较浅的端点,求树的根节点以及每条边的端点。 思路 由于点的编号是不重复的,对于两条 阅读全文
posted @ 2025-09-29 21:46 PenguinJ 阅读(6) 评论(0) 推荐(0)
摘要: 先考虑一个序列的贡献, 一个序列 \(X\) 要满足存在对应的树的充要条件是 \(\sum X_i =2N-2\)。 如何构造一棵直径最长的树?不妨令根节点度数为 \(1\),每次可以在当前最深的点下接上一个非叶子节点,使最长链延长,再算上链的末尾的一个叶子节点,记序列中大于 \(1\) 的数的数量 阅读全文
posted @ 2025-09-29 21:44 PenguinJ 阅读(5) 评论(0) 推荐(0)
摘要: 题目 思路 以样例5为例,分析一下样例,对于 \(x=[5,1,2,6,3,4],y=[3,1,6,2,5,4]\),\(z\) 的第一位只能填 \(5\),第二位的 \(1\) 不是前缀最大值,于是第二位可填任意一个不超过 \(5\) 的数,类似地,第三位可填任意一个不超过 \(5\) 的数,第四 阅读全文
posted @ 2025-09-29 21:43 PenguinJ 阅读(9) 评论(0) 推荐(0)
摘要: 题目。 设 \(f_i\) 表示问完了前 \(i-1\) 面镜子,还期望要多少天。 有 \(f_i=p_i f_{i+1}+(1-p_i)f_1 +1,f_{n+1}=0\) ,答案即为 \(f_1\) 。 将递推式变形,有 \(f_i-f_1=p_i(f_{i+1}-f_1)+1\)。 记 \(g 阅读全文
posted @ 2025-09-12 10:19 PenguinJ 阅读(5) 评论(0) 推荐(0)