- 博客(6)
- 收藏
- 关注
原创 cf966-div3
从贪心的角度考虑,如果一个线段被另一个线段完全覆盖,那么先算出小线段的权值,在算大线段的权值一定更优,因为小线段会被计算两次。于是我们考虑,先选取中间的部分,在逐渐选取更大的区间,但是我们在操作时难以判断L的起点,但是我们可以从另一个角度选择,从外向内。考虑二维差分,二位差分之后可以算出每一个点被使用了几次,使用越多的点,越应该放一个点权大的,把每一个点使用的次数放到一个大根堆。有n个位置,分别为[1, n], 第一个人可以随意坐,之后的人要坐的位置,周边必须有一个人以上,问是否可以遵守规则。
2024-08-14 01:32:34
800
原创 ABC366
时间复杂度过于庞大,于是考虑如何优化。仔细观察一下提问,我们发现,可以把题目给的三元组,抽象成。的矩阵,依次做二位前缀和,那么在查询的时候,可以优化掉两层,那么时间复杂度就变成了。题意过于抽象,但是如果硬生生模拟也是可以写出来的,但是看一下时间复杂度。票投给另一个人,问剩余的票是不是已经不影响结果了。考虑字典,然后按照要求模拟就可以了。有一个空数组,给出三种操作,将。行开始,每次输出每个字符串的第。,要求每个输出的字符串不以。很抽象的题意,难以描述。,也就是每次提问,需要枚举。,那么配合上提问,就是。
2024-08-10 23:01:30
938
原创 ABC365
问你该如何出拳,保证不输给对方(可以平局),并且不能和上一次出拳相同,要求赢最多的局数。这里给出一个贪心的反例:剪刀剪刀布,按照当前最优的话,解法应该是石头剪刀布,那么答案是。如果当前对方是石头,那么自己是布可以赢,则第。,加上题目中要求某某最大值,直接考虑二分,二分。,但是剪刀石头剪刀是最优的,答案是。的代价,要求所有人的代价之和小于。步的剪刀和布的情况直接转移过来。遍历求和,判断更新那边的边界。个人是自己的价格,剩下的人采用。,自己是石头可以平局,则第。的字符串,字符串包含。步的剪刀和石头的情况。
2024-08-10 23:00:28
931
原创 ABC364
顺便附上我常用的二分模板的出处,我觉得讲的比yxc讲得好,大家可以听一下:【二分查找为什么总是写错?有两种食物,甜的与咸的,可以连续吃多次咸的,但是连续吃两次甜的食物就吃不下了,按照给出的顺序吃食物,问是否能吃完所有食物。记录一下当前吃了几个甜的,如果已经吃了两次甜的,并且不是最后一份食物,那么就是。,如果每次提问都真的计算一遍的话,时间复杂度会非常大,于是考虑二分答案。给出起点和移动方式,如果可以移动则移动,无法移动则呆在原地。每份食物有甜度与咸度,你可以任意顺序吃食物,如果吃的甜度超过。
2024-08-10 22:57:05
582
原创 ABC363
的放进去,然后从小到大去枚举高度,加入一个新的点的时候,考虑当前高度和下一个点的高度取最大值,即。,海水从四周淹没岛屿,水位每天增加一米的高度,问。个队列,把不同高度的岛屿区分开,先将四周高度小于。大于0,那么将存起来的值小根堆排序,输出第。根据高度分出不同的情况,开。如果是回文,则被称为回文数,例如(大小的岛屿,岛屿每一个位置的高度是。棵树,每天生长一米,初始高度为。米的树存起来,但是存的时候存与。天,岛屿每天剩余的面积是多少。,问到第几天的时候,有。的子串是回文串的数量。的十进制数中,回文数有。
2024-08-10 22:55:59
686
原创 ABC360
很明显,把有多个小球的盒子小重量的小球放到其他盒子里,统计每个盒子里小球数量,然后把所有小球的重量和所处盒子编号放到一个小根堆里(其实放到数组里,然后根据小球重量排序也一样的)。考虑什么情况下会相遇,一定是一个蚂蚁向着正方向移动,一个蚂蚁向着负方向移动才会相遇,所以我们只考虑向正方向蚂蚁的情况。的下标,然后还要考虑一下这个点原本右边有多少个点,那么相遇的次数就一定是(右边原本有多少个点-个小球,一开始有的盒子可能是空的,有的盒子有多个小球,每个小球有一个重量。,蚂蚁每秒会向所朝方向移动一个单位,字符串。
2024-08-10 22:54:13
1005
空空如也
指向多维数组的指针!
2022-10-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人