刷题记录

https://www.luogu.com.cn/problem/P1618
本来的思路是枚举三个数。后面感觉是没必要的。
只需要枚举第一个数即可。

注意认真读题。a=0是有可能的,然后你就会RE

https://www.luogu.com.cn/problem/P1012
初看字典序,获得75。
等一下。n<=20!!!

想到了一个使用奇怪排序规则去实现的代码。
需要去重新修正sort。
补充一下sort的运行规则:
image

https://www.luogu.com.cn/problem/B4160
这道题目第一感觉是动态规划+按照r排序。
第二眼就没有感觉了。

关于为什么是按照r排序?做过的大量贪心区间题目都是按照r排序。
那么就是:贪心+排序。

具体如何实现?
看题解去了。

感觉听歌确实会使人降智。
学会了一个暴力的打法,先使用暴力玩耍一下。

这道题目的解法还是很有意思的。
首先是贪心作为整体实现的思路。也就是:将所有区间按照右端点排序再去一个一个把小孩塞进能放到的最左边的地方是最优的。
然后是实现。如何实现?使用并查集去维护第x个地方的左边的第一个空位。初始的时候f[x]=x。
对于每一个c(l[i])如果它是小于r[i]的,那么我们就用一个前缀和数组a[i]去统计一下它。

关于如何修改并查集?f[c(l[i])]当时一定是等于c(l[i])的,但是现在不一样了。
我们需要将f[c[l[i]]]赋值成c(l[i]+1)

https://www.luogu.com.cn/problem/P12247
这道i题目和上一道题目非常相似,不过看这更像是背包动态规划而不是所谓贪心。
嗯?等等。好像也不是特别像。

反正是动态规划。有一个显而易见的\(O(nm)\)时间复杂度的做法。考虑如何优化。
注意到题目解法的标签里有一个叫做并查集的东西。
考虑如何使用并查集优化。
image
我还是不知道怎么优化。
哦!
我有一个这样的思路:先去排序,然后按照w[i]从大到小去便利,能弄一个是一个。
但是这不是贪心吗?(严肃)

不会。看题解吧。
这道题目好像更流行优先队列优化动态规划。
好吧。优先队列就优先队列。

\(O(nm)\)时间复杂度的动态规划的做法是:\(dp[i]\)的定义为,在时间为\(i\)时,能够产生的最大愉悦数值。
而此时我们有两个转移:
1.dp[i]=dp[i-1](在时刻i不进行任何跳舞)
2.当i>=k的时候,有f[i]=f[i-k]+W,W表示让玩家在[i-k+1,i]时间段游玩所产生的最大价值。
如果要在优秀的时间复杂度内动态求出最大值,可以考虑使用优先队列。

如何实现?
每一个玩家有一个“激活时间”:即l-k+1。
如果当前的i=l-k+1,将结构体(r+价值)放入优先队列。
每次去优先队列顶部的那个,如果已经>r那么久pop堆顶。

已知每个元素只会进入队列一次,所以最后的时间复杂度是\(O(n+mlogm)\)

https://www.luogu.com.cn/problem/P10381

来看这道题目。又是并查集和动态规划的题目。

有一个比较显然的\(O(n^2)\)的动态规划做法。等一下。你显然的动态规划和我显然的动态规划怎么不一样!看来得去练一些普及-/普及的线性动态规划。

显然的动态规划:当前:对于当前的i,dp[i]表示从点i到点n最高能够创造的金币数量。

发现一般情况下,动态规划是能够被很多的东西优化的,不一定要锁死一个去看:线段树,堆(单调队列),树状数组,并查集……都可!

但是感觉优先队列是很常用的!而且相当简单!

还有就是优先队列的思路的动态规划原型和我原来的动态规划原型是一样的!所以不同的状态转移方程和状态设置,所使用的优化思路也是不一样的。

这题昨天晚上有点调挂了。待会再来弄。

https://www.luogu.com.cn/problem/P9540
赛时题目。
考场上做的时候做的做法其实是错的,但是机构数据足够水只让我挂了5pts。
实际上洛谷评测出来只有25pts。

一道贪心啊。
不难发现同一段序列反转多次的效果是一样的。
最后肯定希望非连续的非y子序列尽量的少。

那么难题就在序列合并上。
我们肯定希望在满足题目要求的情况下尽量让非y的在一起,让y在一起。
那么就可以用双指针将它们两个序列合并起来。

并且最近打算改变刷题策略。一种题目要刷很多很多。类似于文化课的写法。

所以现在练习十道贪心+双指针

https://xinyoudui.com/ac/contest/745012729000C180939A63/problem/46162
一道集训题目。需要用到树状数组。感觉已经把它忘掉了。
树状数组支持:(区间和,区间异或和,区间乘积,区间最值查询)+单点修改。

看视频重新理解一下。觉得这句话还挺重要的:
image

https://www.luogu.com.cn/problem/P2161
本土题目。感觉问题在于如果直接便利l,r每个都加一遍最后就会挂机超时。
如何保证不超时?不知道。

l,r<=10^5 有故事。

posted @ 2026-08-12 14:07  Baltic  阅读(10)  评论(0)    收藏  举报