自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 2021noip总结

时间安排8:30−8:508:30-8:508:30−8:50 把四道题都看了一遍,三道数学一道大模拟,说实话看完题我整个人都是懵的,因为一道图论和数据结构的题都没有,这CCF出的什么破题,我从昨天晚上开始一直在看图论的题,早上还背了背tarjan的板子,考前还码了将近百行的线段树和tarjan的模板,结果一个都没用到。8:50−9:108:50-9:108:50−9:10 T1是个大水题,就按照题目的描述直接模拟即可,类似于埃氏筛,然后在开一个 nexne_xnex​ 数组表示 xxx 的下一个符合条

2021-11-21 13:50:21 278

原创 2021.11.17模拟赛总结

时间安排8:30−9:008:30-9:008:30−9:00 把四道题都看了一遍,T1是真的不会,T2是个dp,T3一看就是最短路径生成树再上线段树,T4也没看出什么。9:00−9:209:00-9:209:00−9:20 推了推T1,但是怎么都想象不到四维五维的情况,就写了个模拟就去看T2了。9:20−10:009:20-10:009:20−10:00 考虑题中所给的这样一个条件:所有的作业的完成的时间是相同的,所以我们不用考虑作业的种类,只需要考虑完成了几个作业即可,所以我设的dp状态为 fi,

2021-11-17 16:11:14 71

原创 2021.11.16模拟赛总结

时间安排8:30−8:508:30-8:508:30−8:50 先把四道题都看了一遍,T1应该是个结论题,T2没思路,T3和环有关,T4应该和最小生成树有关。8:50−9:408:50-9:408:50−9:40 对于T1,我先码了一个 n3n^3n3 的暴力,然后考虑每个点对答案的贡献,显然只和当前这一行和当前这一列的点有关,假设当前点为 (x,y)(x,y)(x,y),然后其他点为 (x,y1),(x,y2),(x1,y),(x2,y)(x,y_1),(x,y_2),(x_1,y),(x_2,y)(

2021-11-16 15:41:21 1291 1

原创 2021.11.15模拟赛总结

时间安排8:30−8:508:30-8:508:30−8:50 把四道题都看了一遍,T1感觉是kmp,T2没思路,T3看着像点分治,T4没思路。8:50−9:408:50-9:408:50−9:40 对于T1,首先不难发现如果相对应的位置上的字符相等,那么一定要分成一组,然后考虑不相等,我最开始的想法是对于这一段做一个kmp然后这一段的程度就是 nextrnext_rnextr​,但是这样做时间复杂度太大,极限情况下是 O(n2)O(n^2)O(n2) 的,所以就在考虑优化,想了好久才发现自己进入了一个

2021-11-15 13:54:35 69

原创 2021.11.13模拟赛总结

时间安排7:50−8:107:50-8:107:50−8:10 把四道题都看了一遍,T1二分查找,T2像是dp,T3高精?T4应该是个找规律,而且看着就是CF的题。8:10−8:508:10-8:508:10−8:50 就用set和lower_bound模拟整个查找的过程,二分求出下一个点所在的位置。8:50−9:408:50-9:408:50−9:40 对于T2,我一直在想到dp,但是发现很难转移,因为你加入一个点后会对后面产生影响,我想了好几种状态:fif_ifi​ 表示有 iii 个人投票的最小

2021-11-13 14:53:39 210

原创 2021.11.12模拟赛总结

时间安排7:50−8:207:50-8:207:50−8:20 把四道题都看了一遍,T1觉得是个dp,T2推了推样例,确定是不会写的题,T3多字符匹配很容易想到AC自动机,但是发现不会维护不重合的串的出现次数,T4应该要用数据结构写。8:20−8:508:20-8:508:20−8:50 T1我最开始的想法是dp,先把数组从大到小排好序,然后设 fi,jf_{i,j}fi,j​ 表示考虑前 iii 个数,选了 jjj 个的最大的和,然后在 j=3j=3j=3 和 j=5j=5j=5 的时候特判一下转移,

2021-11-12 14:54:28 207

原创 2021.11.11模拟赛

时间安排7:55−8:207:55-8:207:55−8:20 把四道题都看了一遍,T1感觉是个构造,T2我觉得贪心可写,T3,T4没思路。8:20−8:508:20-8:508:20−8:50 我以为这是个凑数题,所以就在找规律凑数。甚至还写了质因数分解。还是没思路,就码了个暴力就去看T2了。8:50−9:208:50-9:208:50−9:20 对于T3,应该是个dp,但是发现贪心好像没什么错所以就去写了一个贪心,大致思路就是维护一个堆,使得堆顶为差值最大,然后在记录一下修改了几个即可,但是我能

2021-11-11 15:09:45 62

原创 2021.11.10模拟赛总结

时间安排7:50−8:207:50-8:207:50−8:20 把四道题看了一遍,T1好像以前做过,T2应该和kmp有关,T3感觉就是个贪心,T4就是求最长的额链。8:20−9:008:20-9:008:20−9:00 对于T1的集合之间的并和交很容易想到位运算中的或和与,所以我就写了个bitset,但是1000的样例怎么都过不去,后来看见绝对值才意识到可能为负数,然后就整体右移到非负的区间即可。9:00−9:509:00-9:509:00−9:50 对于T2,显然如果 n=1n=1n=1,那么答案就

2021-11-10 14:32:20 40

原创 2021.11.9模拟赛总结

时间安排7:50−8:207:50-8:207:50−8:20 把四道题都看了一遍,T1,T4感觉就是个找规律,T2像是dp,T3最短路。8:20−9:008:20-9:008:20−9:00 对于T1,我先打了个表,发现有循环节,所以我就在考虑如何求出这个循环,我发现对于被奇数区间覆盖的循环节是2,被偶数区间覆盖的循环节是2的次方,然后我就想求出最大公倍数然后循环做,但是有的循环节太大了导致TLE。9:00−10:209:00-10:209:00−10:20 对于T2,我的想法是设 fif_ifi​

2021-11-09 14:26:59 192

原创 2021.11.8模拟赛总结

时间安排7:50−8:207:50-8:207:50−8:20 把四道题都看了一遍,T1的暴力很好写,T2应该是Manacher和构造,T3有dp的思路,T4是个数据结构。8:20−9:108:20-9:108:20−9:10 我先写的是T3,我最开始的想法是设 fi,j,kf_{i,j,k}fi,j,k​ 表示考虑完前 iii 个,一共买了 jjj 个,总价值为 kkk 的方案数,但是 jjj 和 kkk 很大,所以我考虑让 kkk 表示平均值,然后dp转移。9:10−9:509:10-9:509:

2021-11-08 14:27:30 59

原创 2021.11.7模拟赛总结

时间安排8:00−8:258:00-8:258:00−8:25 把四道题都看了一遍,T1看着简单,T2,T3都是构造题,T4几何题。8:25−9:008:25-9:008:25−9:00 我也不知道我在写T1的时候在犯什么神经,一直想着先把钱花完再换瓶子,导致根本无法判断每次换了多少瓶子,只能一遍一遍的模拟。9:00−11:009:00-11:009:00−11:00 可能是对构造题不敏感,T2T3一直没思路,T2我原本的想法是对于每一个顶点找之后相邻的都和当前颜色不同的第一个位置,然后连接,一直这样

2021-11-07 18:14:17 50

原创 2021.11.6模拟赛总结

时间安排7:50−8:207:50-8:207:50−8:20 把四道题的题面看了一遍,T1有40分的思路,T2直接自闭,T3感觉像是贪心,T4是OJ1849加多组测试。8:20−8:508:20-8:508:20−8:50 把T1的40分暴力码了,就是开一个维护一个堆顶为当前可到节点的血量最小的节点的堆,再用一个变量now表示当前的最大攻击力,如果now小于堆顶的血量,就让ans等于堆顶的血量,对于每个节点都这样做一遍,时间复杂度 O(n2log n)O(n^2log\,n)O(n2logn)。8:

2021-11-06 13:35:45 48

原创 2021.11.5模拟赛总结

时间安排7:50−8:207:50-8:207:50−8:20 把四道题都看了一遍,T1看着很熟,因为我曾经写过一道类似的题独木桥,T2有点像最小生成树,T3没思路,T4有点像#888。8:20−9:008:20-9:008:20−9:00 对于T1,由于我以前做过,所以知道一个结论:当两球相撞时,可以看成两球“穿过”对方,因为两球是没有区别的。所以可以预处理出每个球经过T秒后,方向向左的位置 qi,0q_{i,0}qi,0​ 和方向向右的位置 qi,1q_{i,1}qi,1​,再标记所有的机关点,判断

2021-11-05 13:15:51 73

原创 2021.11.3模拟赛总结

时间安排7:55−8:207:55-8:207:55−8:20 把四道题看了一遍,T1像是dp,T2是个dp,T3树形dp,T4没思路。8:20−9:008:20-9:008:20−9:00 我先写了T3,对于T3,我的想法是设 fx,0/1f_{x,0/1}fx,0/1​ 表示在以x为根的子树内且x本身选/不选的满足条件的最大的点数,状态转移为 fx,0=max(fy,0,fy,1)f_{x,0}=max(f_{y,0},f_{y,1})fx,0​=max(fy,0​,fy,1​),fi,1f_{i,

2021-11-03 15:11:31 58

原创 2021.10.30模拟赛总结

时间安排8:00−8:208:00-8:208:00−8:20 把四道题都看了一遍,T1感觉很熟悉,T2没什么思路,T3最开始以为是区间dp,T4也没什么思路。8:20−8:508:20-8:508:20−8:50 我想了想,以前确实做过一道类似的(我没想到csp7连),在校OJ里编号2957的随机数,都是二叉树求期望,只不过一个是求叶子节点的平均深度,一个是求叶子节点的个数,我先打了两个表:对于每个n的不同形态的二叉树的个数(f[i]f[i]f[i])和叶子节点的总数(g[i]g[i]g[i])发现

2021-10-31 08:02:31 85

原创 2021.10.29模拟赛

时间安排7:55−8:207:55-8:207:55−8:20 把四道题都看了一遍,T1,T2感觉可写,T3看上去像tarjan,T4没什么思路。8:20−9:008:20-9:008:20−9:00 看到前缀和后缀很容易想到trie树(后缀就是反串的前缀),就考虑对n个字符串建一个tire树,再记录一下l和r表示在tire树上的位置,再将字符串反过来建一个可持久化trie树来统计答案。对于每一组询问,先在普通trie树上查找前缀所在的区间l和r,然后在可持久化tire树上用前缀相减求出答案。9:00

2021-10-29 15:06:54 61

原创 2021.10.28 模拟赛总结

时间安排8:00−8:208:00-8:208:00−8:20 把四道题都看了一遍,T1是个dp,T2暂时没什么思路,T3类似于卡特兰数,T4也没什么思路。8:20−8:508:20-8:508:20−8:50 对于T1,刚开始我没想区间dp,想到了线性dp,设状态 f[i][0/1]f[i][0/1]f[i][0/1] 表示考虑完前i个,并且第i个选/不选的最大的 ∑w\sum w∑w,先把整个区间排好序,当时想的转移式是f[i][0]=max(f[i−1][0],f[i−1][1]),f[i][1]

2021-10-28 15:15:42 64

原创 CSP-S 2021总结

这真的是CSP吗,T4网络流,T2暴力都难打,感觉像是在做去年的NOIP时间安排2:30−4:002:30-4:002:30−4:00 把所有的题面都看了一遍,T1有思路,T2大致能想到15分的dfs+check,T3的28分很好写,正解应该是区间dp,因为和lyn讲过的一道区间dp很像,T4的k=2的情况是网络流求所有边割的最小和,但从没写过网络流,就直接放弃了T4。4:00−5:204:00-5:204:00−5:20 把T1的40分用差分码了出来,对于m1,m2分别求出ans[i]数组表示对于有

2021-10-24 15:51:52 273

原创 2021.10.15模拟赛总结

时间安排1:50−2:401:50-2:401:50−2:40 先把所有题的题面都读了一遍,T2,T4最耗时间了,我一直在找T4的u和v合并以后的新的瓶子是在u上还是在v上,我看了看大样例,每一个瓶子的最后出现的位置都是v,所以我以为是u和v合并在u(即v倒到u里面),直到我看见有一组数据是第i个合并操作是i和i+1,我直接懵了,因为如果是v倒到u里面,那么这n-1个操作就不可能将这n个瓶子合并成一个,如果是u倒到v里面,大样例又无法解释,就很离谱。2:40−3:202:40-3:202:40−3:20

2021-10-15 18:58:06 50

原创 2021/10/2 lsjDay2模拟赛总结

8:00−8:208:00-8:208:00−8:20 先把T1到T5全都看了一遍。8:20−9:008:20-9:008:20−9:00 对于T1,可以把 2∗x−12*x-12∗x−1 和 2∗x2*x2∗x 看成一个整体,对于每一个整体,除了m整除外,每一个任意数字有且仅有一种可能被表示,所以,我就先深搜所有可能的情况,然后对于和为m的所有可能性相乘。9:00−10:309:00-10:309:00−10:30 我在考虑T5,T5的暴力很好写,就是用一个lca然后暴力修改即可,我想到的正解是树剖+

2021-10-02 13:33:54 78

原创 9.23dp专项测试总结

时间安排6:00−6:206:00-6:206:00−6:20 把3道题都看了一遍,T1没什么思路,T2感觉像是板子题,T3感觉部分分可写。6:20−6:406:20-6:406:20−6:40 把T2的代码码出来了,思路很简单,就是对于一个i,j先判断能否从上一个阶段转移过来,但我没判断有冲突的情况,只有40分。6:40−7:306:40-7:306:40−7:30 用 O(2n)O(2^n)O(2n) 的状压子集枚举写了20分,先sort一遍,再对于每一个状态的判断就维护一个l,r表示当前能拓展的

2021-09-29 12:32:24 89

原创 csp7连 day5总结

时间安排6:00−6:106:00-6:106:00−6:10 我先把T1码了出来,就是判断是否是3和10的共同倍数即可。6:10−6:406:10-6:406:10−6:40 我刚开始没什么思路,后来就想着维护一个l和r,从1开始枚举,再依次标记出现过的pos[i],然后开始拓展l和r,只要相邻的数的pos被标记就拓展,一旦被拓展就说明当前的m可行,然后就去看T3,T4了。6:40−6:456:40-6:456:40−6:45 我看了看T3的题,暂时没什么思路,就先放下去了。6:45−8:006:

2021-09-28 17:44:11 1166

原创 csp7连day4总结

6:00−6:506:00-6:506:00−6:50 在推T1,刚开始我以为是给定雷的位置,求数字,迅速码完之后又看了看题,发现想错了,后来没想到直接隔三个枚举,就写了一个bitset暴力枚举雷的位置,再和原数组比较,但不知道哪写错了,炸了6:50−7:306:50-7:306:50−7:30 把三四题都看了一下,T2我的想法是维护一个n+m的vector数组,然后依次用lower_bound找最近的1的位置,找到后就先将其填满,最后剩一整列或一整行再用7个的组合依次写,T3倒没什么思路,就先码了一个

2021-09-22 20:43:44 440

原创 2021/9/10模拟赛总结

时间安排6:00−6:206:00-6:206:00−6:20 把四道题的题面全读了一遍,初步确定写题顺序为1,4,3,2。6:20−6:406:20-6:406:20−6:40 我手画了几个菱形的例子,由于我画的菱形太小,导致我以为菱形就是一个正方形加上周围的四个中点,所以我的思路是先用 O(n2 log n)O(n^2\,log\,n)O(n2logn) 求出 ans[i][j]ans[i][j]ans[i][j] 表示 (i,j)(i,j)(i,j) 所能拓展到的最大的长度,考虑对于两个菱形相交的

2021-09-11 08:47:44 63

原创 2021/9/4CSP七连总结

考试时间安排6:00−6:306:00-6:306:00−6:30 看T1的题面并且写出了代码。但我输入样例的时候忘了检查输出格式,没输出yes和no,直接爆零。6:30−7:106:30-7:106:30−7:10 看了T2的题面,第一眼想的是kmp再用栈来维护,然后动态查找要删的位置,样例过了,但自己造的数据没过,就直接去看T3了。7:10−7:507:10-7:507:10−7:50 我把T3的40分码了出来,当时不会用map,就用了hash,然后下标为0的数没赋值1,导致数组全是0,改了10分

2021-09-06 20:47:55 417

原创 2021/8/22模拟赛总结

说实话我刚开始并不知道今天有模拟赛,到了十点才知道,看到T1后很显然是一个bfs,判断是否全为1或全为0我用了一个二维数状数组,再特判一下只有一个格子的情况,bfs就写完了,但我一直把矩形当成左边从1开始,调了有10分钟。看到T2时已经11点半了,发现T2是原题,就直接码了,但没过样例,调着调着就到点了。下次一定要看群!!!...

2021-08-22 14:30:45 35

原创 2021/8/12模拟赛总结

T1-如烟考场上想的是用dfs求出一共有几个联通块,再求出每个连通块的点数,答案就是 Csize2C_{size}^2Csize2​,但是这个做法是错的。T2-星空这道题以前好像写过,考场上看出来是二分匹配,但是具体不会建图,所以就打了70的部分分。T3-知足这道题在考场上就没什么思路,就先跳过了。T4-倔强这道题我的想法是对于每一个确定的点贪心的选它前面和后面的点,但是细节没处理好,几个测试点都错了一两个。...

2021-08-13 00:18:01 41

原创 2021/8/7模拟赛总结

T1-veryeasy确实挺简单的,但是它居然卡double!30分炸了。T2-easy这道题我完全没思路,样例1的第二组数据也没推出来,就先去看T3了。T3-mediumeasy大致有点思路,看到第一个测试点n,m<=15,就写了一个O(n^3)的暴力。然后就去看T4了mediumT4我刚开始看错题了,以为列数<=20,就想着对于每一行建一棵线段树,然后暴力修改。后来发现是行数<=20,但我想应该能卡过几组(时间限制有8秒),就接着写了。但没调出来,考场代码如下(还没

2021-08-07 12:11:37 57

原创 集训总结10

目录状压dp状压dp状压dp主要是利用二进制的性质将不同的状态压缩为一个二进制数,再用位运算进行转移,位运算中最常用的技巧有判断第i(从右向左)位是否为1(sta&(1<<i)),取反第i位(sta^(1<<i))等,状压dp其实特别好看出来,因为状态是 2n2^n2n 级别,所以n一般都特别小(一般为十五六),然后根据题目的意思设计状态,最后利用位运算转移即可。...

2021-08-06 23:37:08 40

原创 集训总结9

目录区间dp树形dp练习区间dp简单来说区间dp解决的是区间求最小代价等问题 ,通常转移方程为f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+cost)。其中cost为转移的额外花费。树形dp树形dp解决的是树上的dp问题,如各种操作后的距离和,权值和最小等问题,一般要用dfs来转移。练习下面是已经ac的题(题号为洛谷题号)P4302,P1220,P2014,P2015,P3177,P1131,P1864...

2021-08-05 23:51:34 50

原创 2021/8/4模拟赛总结

T1-吉吉买铅笔挺好想的,就是从起点和终点跑两遍dijkstra,然后相加即可。T2-吉吉的跳跃可能考场上不太清醒吧,当时想的是建出联通快,然后对于横排和竖排缩点,然后就不会了。T3-吉吉游西藏这是当时最有思路的一题了,看到模数是4个质数相乘再加一,就想到了古代猪文这道题,30分是一个普及的dp,但是写炸了,只得了一个扩展lucas和中国剩余定理的20分。...

2021-08-05 23:40:31 41

原创 2021/8/3模拟赛总结

T1-移动杠铃这道题其实不难想,就是二分一下答案然后判定即可,但我看错题了,以为只要不在一个集合内的最大值即为答案,显而易见,这是错的,于是就爆蛋了。T2-简单题可以证明平均数一定是最优的,而对于取整操作只要上取整下取整都算出来然后求一个min即可。T3-串串第一眼看到就知道大概是个dp,对于每一个dp[i],从前面找到满足条件的j(j到i有恰好k个不同的字符然后取其中的最小值加1即可),而对于不同的字符,我想到了set,因为如果插入相同的字符直接会被忽略,而且时间复杂度也是对的。后来为了枚举的更

2021-08-05 23:29:45 53

原创 集训总结8

目录后缀数组和后缀自动机后缀数组后缀自动机后缀数组和后缀自动机后缀数组后缀数组就是把一个字符串的后缀用一个数组储存下来,简单来说,我们要把字符串的每个后缀按照字典序排序,维护以下几个数组:sa[i]:排名为i的后缀的起始位置的下标rk[i]:起始下标为i的后缀的排名height[I]:排名第I个和排名第i-1个的后缀的最长的公共前缀具体构造可以用基数排序,时间复杂度是O(nlogn)。一个比较重要的性质:排名第i个和排名第j(j>=i)个的后缀的LCP为min{height[i]…

2021-08-05 23:11:58 37

原创 集训总结6

目录字符串专题字符串hash概念hash冲突二维hash字典树概念AC自动机KMPExKMP(扩展KMP)Manacher字符串专题字符串hash概念字符串hash就是对于一串字符,用特殊的方法将其转变为一个数字,这样一来,对比两个字符就可以转变为比较两个数字,时间复杂度大幅降低。hash冲突解决hash冲突最普遍也是最好写的是多hash几遍,这样一来,冲突的概率就大大减小了。二维hash具体来说,就是先对于一行的求一个hash,再把这几个hash值再求一个hash如果这个hash值相等,就

2021-07-26 20:39:15 54

原创 集训总结5

目录线段树拓展权值线段树动态开点线段树合并线段树拓展权值线段树权值线段树和普通线段树的区别在于权值线段树维护的不是区间内数的值,而是树出现的次数,可用来解决求第k大值。动态开点动态开点就是在空间不够开全部数组时用的方法,具体来说就是刚开始树只有一个根节点,在插入或修改等操作时才把节点开出来,空间复杂度大大优化。线段树合并线段树合并就是把两个线段树合并成一个线段树,具体来说,对于同一个位置,如果两颗线段树都有,就不变,若其中一个没有,就新建一个点,特别的,在合并式,我们也可以用启发式合并来保证时

2021-07-26 20:15:55 30

原创 集训总结4

目录可持久化数据结构可持久化线段树(主席树)概念可持久化数组可持久化并查集可持久化字典树可持久化数据结构可持久化线段树(主席树)概念主席树可以维护树的历史版本,具体来说,对于每一次修改,影响的是一条链,所以我们可以新建这条链,然后把相同的部分连到原来的树上,这样空间复杂度也就可以接受了。代码实现也比较容易,就是把线段树的板子加上新建的操作即可。可持久化数组可持久化数组和主席树类似,用处也不如主席树多,所以就不多阐述了。可持久化并查集其实可持久化并查集和也和上面差不多,它可以撤销合并的操作,

2021-07-26 20:05:50 36

原创 集训总结3

目录平衡树概念常见的平衡树伸展树概念实现方法区间修改treap概念无旋treap平衡树概念平衡树是一种二叉树,其满足一条性质:对于任意节点,它的ls(左儿子)的值总是小于等于该点的值,rs(右儿子)总是大于该点的值,我们可以根据该性质建一棵树,并且可以在logn级别的时间内查询。常见的平衡树伸展树概念伸展树是基于被修改的值很有可能在接下来被查询的理念,所以在每次修改时,我们可以将被修改的点“旋转”到根节点,从而保证复杂度。实现方法通常实现这种旋转的方法为splay。区间修改对于区间修改

2021-07-26 19:50:26 46

原创 集训总结2

目录分治分治的基本思想cdq分治基本概念基础例题三维偏序题意数据规模与约定思路最长偏序链题意数据规模与约定思路线段树分治分治分治的基本思想对于一个问题,分成两个部分分别处理后再合并答案。cdq分治基本概念cdq分治是指一类先算左边,再算左边对右边贡献的分治。基础例题三维偏序题意有 n 个三元组 (ai,bi,ci)(a_i,b_i,c_i)(ai​,bi​,ci​),对于每个三元组,你要求出有多少个其它三元组 (aj,bj,cj)(a_j,b_j,c_j)(aj​,bj​,cj​) 满足

2021-07-24 20:44:33 53

原创 7/23模拟赛总结

T1-覆盖签到题,贪心即可。T2-下雨这道题我写了一个多小时,在考场上的思路是先找到最小的位置,再维护双指针i,j表示左边即将更新第i位,右边即将更新第j位,再维护一个结构体,其中,val表示填满a[i]所需的水的总量,w表示小于a[i]高度的宽度,h表示当前的最高值,对于每一个i,j由i+1或j-1转移,最后按val排序,找到第一个val大于s的位置,分类输出答案。T3-中位数刚看到时想的是用权值线段树维护第k大值,但我只会维护权值线段树,就用半个小时写了一个权值线段树,但是连样例都过不去,看到

2021-07-23 15:49:40 48

原创 集训总结1

目录倍增为什么要倍增RMQ ST表做法LCA倍增为什么要倍增倍增可以让我们在 nlognnlognnlogn 的时间复杂度内解决问题,如区间最值(RMQ)问题,最近公共祖先(LCA)等,用处广泛。RMQ ST表区间最值问题,又称RMQ是指在任意l,r中找出最大值。做法我们首先考虑暴力,对于每一个询问,我们可以枚举l到r的元素,更新答案,时间复杂度为 O(Q(r−l))O(Q(r-l))O(Q(r−l)) Q为询问个数,l和r为询问区间。我们考虑优化,我们可以维护一个二维数组 f[i][j]f

2021-07-21 23:57:18 44

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除