- 博客(6)
- 收藏
- 关注
原创 洛谷P2882
为什么一定是此时翻转,假设i牛,前i-1牛状态正确,如果不在此时翻转,那么i牛将不被处理,回过头来再去处理i牛的时候会让更多的F牛变成B,次数增多,所以必须翻转i牛。现在我们思考,对于一个固定的翻转长度我们怎么求出最小的操作次数(很像贪心对不对),就是每一次操作我们都想尽可能的翻转更多的B牛。一开始看到最值就去思考二分答案法,但是发现答案跟条件没有单调关系,所以放弃了,只能使用朴素模拟,这里时间复杂度就是O(n)因为每一次翻转实际上是对一整个区间做操作,所以很自然想到差分,可以把O(n)优化成O(1)。
2026-01-04 21:01:00
296
原创 洛谷P3017
为什么这题可以使用二分答案法呢?(1)标志:最大化最小值,最小化最大值,以及一般的最值问题都可以考虑二分答案.(2)答案跟条件具有单调性,拿本题举例,能分到的蛋糕越小(答案),切割的刀数就越少(题目条件).>先讲一下什么是二分答案法吧,就是如果依据题目条件去求最值答案比较困难的话就可以考虑去枚举答案的可能范围(判断答案符不符合题目条件)从里面找到最小的答案或最大的答案,(枚举采用二分,故称之为二分答案法).>这是一个比较水的提高+的题目吧,一开始以为要做好久,其实是一道简单的二分答案法.
2026-01-03 18:54:17
189
原创 洛谷p1955程序自动分析
本文提出了一种基于并查集和离散化处理的算法,用于判断多个变量间的相等关系是否一致。首先将所有相等条件优先处理,通过并查集合并相关变量。然后检查不等条件,若发现冲突则判定为不一致。针对大范围数据问题,采用离散化技术将变量映射到连续区间,优化空间效率。算法时间复杂度主要取决于并查集操作,整体效率较高,能有效处理大规模变量关系判定问题。
2026-01-03 17:56:29
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2