- 博客(2)
- 收藏
- 关注
原创 洛谷 P2627 [USACO11OPEN] Mowing the Lawn G
优化:看到方程的形式类似dp[i]=max(dp[j]+b[j])+a[i]。考虑使用单调队列进行优化,看一下窗口是否有重叠,当i-》i+1时,dp[j-1]-sum[j]存在很大重叠所以可以使用单调队列来优化。仔细分析一下限制,我们发现要将目光定位在一个具体的位置i上,这样才方便处理不能取连续k个以上数,即我不取i,我单取i不取i-1,我取i和i-1不取i-2等等这样就保证了我不会取到连续的超过k个数了。题目大意:最大子序和问题,但有一个限制:不能连续取k个及以上的数。
2024-05-06 22:34:51 367
原创 洛谷P1955
题目思路:刚开始时觉得是使用带权并查集去维护这些变量之间的关系,但是这是有问题的,因为不等关系不具备传递性,即a!=c,无法确定a和c的关系,所以无法使用带权并查集,仔细想想发现应该是先将所有的相等关系拿出来用并查集维护,然后再处理不等,例如a!=b,找到a和b所在的集合,如果二者所在的集合是同一个那么输出NO,当所有的不等关系也都满足时,输出YES。由于此题的n只有1e5,而变量角标可能很大,所以应当使用离散化。题目简述:给你一些变量之间的相等或不等的关系,问是否这些条件可以被同时满足。
2024-05-05 17:34:44 277 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人