昨日#13106题解:题意要求我们把钢胚切割成很多段,使得这个短段尽量的长。因为钢胚数据范围较大,可使用二分查找法解决。枚举所有钢胚,假定切割长度为x,对于每一段钢胚其能分割的段数最大是a[i] / x,设一个累加器ans记录所有钢胚可分割总数,如果发现能切够k段则去右半部分找更大的解,如果发现切不够k段就去左边找可行解,直到找到最优解并输出。
2026信息与未来每日一题打卡
2026-03-28 14:20:31 By xoyo
评论
张承一
$ x $
- 2026-03-29 12:31:42
deepblue
3月31日#13078题解:如果直接使用穷举,时间复杂度为O(n^4),0 < n < 4000,肯定会超时。
我们不妨把这个等式拆解成两个部分(a+b)+(c+d)=0,也就是a+b=-(c+d)。这样我们可以计算出a和b两个集合中任意两个元素相加的和,存放到数组s1中,时间复杂度为O(n^2)。同样计算出c和d两个集合中任意两个元素相加的和,存放到数组s2中。接下来再比较s1和s2两个数组中是否有相反数。
当然,不能使用穷举去一一比较。因为当前s1和s2两个数组的大小都是n^2。直接比较,时间复杂度还是O(n^4)。我们可以使用二分查找。
记住二分查找的前提是序列必须是有序的。
这里可以使用sort进行排序。
今日打卡题: http://go.helloworldroom.com/problem/13140
- 2026-04-01 13:27:32
顾博文
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
- 2026-04-26 09:19:18
发表评论
可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。
