首页 > 其他分享 >数星星题解补充

数星星题解补充

时间:2024-02-22 21:04:09浏览次数:27  
标签:set 补充 题解 复杂度 然后 数星星 维护

题解中那个看似暴力的染色,实际上正确性显然,直接看75%的时间复杂度证明

然后还是直接看75分的部分

它的里面说是用set维护块的前驱后继,然后全网没有一篇这样的题解,似乎全世界就我一个用这个方法

于是想了一中午终于想到如何维护:

就是用set记录每一个块的最后一个的位置,由于是区间覆盖,不会有重叠的块

然后考虑如何覆盖,分两种情况:

1.l,r在同一块内

就是用lower_bound找后继(原来是这个意思),然后对(l,r)暴力清除

2.else

然后就是处理中间的整块,直接清除

注意前后还会有一点小部分,可以不用管后面(从set维护什么来思考),只用维护前面,只要l-1还在块内就新建一个块

然后还是题解中的树剖+set+树状数组,或者可以用线段树的奇怪操作

不过好像理论时间复杂度快一点nlog ^2,线段树的是nlog ^3.

不过我调了一天,孤身一人...

标签:set,补充,题解,复杂度,然后,数星星,维护
From: https://www.cnblogs.com/zhy114514/p/18028156

相关文章

  • P3870 分块题解
    这篇题解有点问题(分块标记处),但现在不想修,等有空修吧link分块是一种很神奇的暴力,学了它就会觉得什么都可以用分块做。分块的主要思想就是整块快速查询,散块暴力查询。比如说,分块可以在\(O(q\sqrt{n}+n)\)的时间复杂度内解决线段树模板题。回到本题,显然我们可以用每个块维护......
  • CF1372F Omkar and Modes 题解
    来个乱搞。思路考虑分治。对于最裸的暴力。我们可以调用solve(l,r)进行查询。假如这个区间的众数的出现次数是区间长度,那么可以直接退出,否则我们可以继续分治。我们把这个暴力进行加工一下。我们知道\(l\simr\)的区间众数后。查询\(l\simmid\)的区间众数,若完全......
  • CF1845F Swimmers in the Pool 题解
    思路考虑两个人什么时候会相遇。根据小学的相遇追及问题,两人会相遇的条件为:\[2\timesk\timesl=t\times(v1+v2)\]\[2\timesk\timesl=t\times(v1-v2)\]那么对于一个速度\(v\)。它可一相遇的次数即为:\[\frac{t\timesv}{2\timesl}\]当然,这样有可能会算重,也就是在相同......
  • 山海经(线段树)题解
    原题链接:COGS775题目描述:“南山之首曰鹊山。其首曰招摇之山,临于西海之上,多桂,多金玉。有草焉,其状如韭而青华,其名曰祝余,食之不饥……又东三百里,曰堂庭之山,多棪木,多白猿,多水玉,多黄金。又东三百八十里,曰猨翼之山,其中多怪兽,水多怪鱼,多白玉,多蝮虫,多怪蛇,名怪木,不可以上。……”(其实就......
  • 玉蟾宫 题解
    题目描述有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。现在freda要在这里卖萌。。。它要找一块......
  • P6466 分散层叠算法(Fractional Cascading) 题解
    题目链接:分散层叠算法比较妙的东西,在很多涉及到若干个有序块的\(kth\)查询的ynoi题中都有妙用。这里简单提提。两种暴力解法在其他文章已有涉及,在此不再赘述。讲讲具有该怎么写这个算法,首先我们需要预处理出新的\(k\)个序列,不妨记每个为\(M_i\)。\(M_{n}=L_n\),其中\(L\)......
  • [ABC259Ex] Yet Another Path Counting 题解
    Description有\(N\)行\(N\)列的网格图,只能向下或向右走,合法路径的开端和结尾的格子上数字一样找到合法路径条数,对\(998244353\)取模\(1\leqN\leq400,1\leqa_{i,j}\leqN^2\)。Solution有一个\(O(n^4)\)的做法是每次枚举起点和终点然后用组合数计算答案,但是由于同......
  • 牛吃草 题解
    牛吃草居然真的是牛吃草Description由于现代化进程的加快,农场的养殖业也趋向机械化。lyz决定购置若干台自动喂草机来减少自己每天的工作量。为了简化问题,lyz决定将草地建模成一条线段,总长为\(n\),即共有\(n\)个单位长度,编号从左至右为\(1∼n\)。lyz可以在每个单位长度独......
  • blocks 单调栈、单调队列题解
    blocks题解:1、题面:2、分析:题意大概就是说,找一段最长的区间,并且这段区间的平均值>=k,那么我们可以对他的每一个值减去k,最终求和>=0即可。那我们需要对每个可能的左端点和右端点进行考虑,并以此让他们进行配对,看他们之间的区间和是否非负。那么我们先定住一个右端点,再依次考虑......
  • 理想的正方形 题解
    题目描述有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。输入格式第一行为3个整数,分别表示a,b,n的值第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。100%的数据2<......