![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分块
csu_xiji
这个作者很懒,什么都没留下…
展开
-
HDU 4391 Paint The Wall 分块+哈希
https://vjudge.net/problem/HDU-4391题目大意:给出nnn面墙的初始颜色,mmm个询问(a,l,r,z)(a,l,r,z)(a,l,r,z),如果a=1a=1a=1,表示把[l,r][l,r][l,r]的所有墙染成zzz,如果a=1a=1a=1,表示查询[l,r][l,r][l,r]的颜色为zzz的墙的数量。思路:分块+++哈希,没敢用mapmapmap,感觉可...原创 2020-04-07 01:38:18 · 173 阅读 · 0 评论 -
洛谷 P3396 哈希冲突 分块思想
https://www.luogu.com.cn/problem/P3396思路:先考虑暴力怎么做,用ans[i][j]ans[i][j]ans[i][j]记录在mod imod\ imod i的情况下第jjj组的答案,显然我们在可以O(n2)O(n^2)O(n2)的时间复杂度下预处理出来,空间复杂度也是O(n2)O(n^2)O(n2)的,肯定不行。那么我们考虑折中一下,即...原创 2020-04-01 14:01:17 · 159 阅读 · 0 评论 -
BZOJ 2002 Bounce 弹飞绵羊 分块
https://vjudge.net/problem/HYSBZ-2002思路:用cnt[i]cnt[i]cnt[i]记录从位置iii出发被弹飞的次数,那么逆序处理的话可以O(n)O(n)O(n)计算出cntcntcnt数组,但是每次修改a[i]a[i]a[i]的弹力系数时,都要重新需改cnt[1…i]cnt[1…i]cnt[1…i],这样复杂度是O(n∗m)O(n*m)O(n∗m)的,肯定过...原创 2020-03-26 00:42:10 · 131 阅读 · 0 评论 -
LibreOJ #6282. 数列分块入门 6 stl+分块
https://loj.ac/problem/6282思路:插入操作利用vectorvectorvector可以很方便的完成,那么把序列分块,每一块都用vectorvectorvector维护,插入的过程中判断一下vectorvectorvector的元素个数,如果大于某个值,比如2∗n2*\sqrt n2∗n时,就重新分块,这样复杂度就有了保障。#include<bits/stdc...原创 2020-03-25 19:30:33 · 205 阅读 · 0 评论 -
LibreOJ #6280. 数列分块入门 4 分块
https://loj.ac/problem/6280思路:分块+lazy+lazy+lazy标记。和线段树的思路差不多。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<set&g...原创 2020-03-25 00:50:57 · 153 阅读 · 0 评论 -
LibreOJ #6279. 数列分块入门 3 分块
https://loj.ac/problem/6279思路:区间加法同上,因为要询问比xxx小的最大元素,copycopycopy原序列分块后对每一块进行排序,这样在完整的块内就可以利用二分来快速判断。因为修改操作是对原序列进行的,对完整的块没有影响,但是对不完整的块是有影响的,这时候暴力修改后应该对该块重新copycopycopy并排序。且在查询不完整的块的时候,用的是原序列的值而不是cop...原创 2020-03-25 00:47:06 · 178 阅读 · 0 评论 -
LibreOJ #6278. 数列分块入门 2 分块
https://loj.ac/problem/6278思路:因为要询问区间内小于xxx的元素个数,copycopycopy原序列分块之后对每个块进行排序,这样在完整的块内就可以利用二分来快速得到答案。因为修改操作是对原序列进行的,对完整的块没有影响,但是对不完整的块是有影响的,这时候暴力修改后应该对该块重新copycopycopy并排序。且在查询不完整的块的时候,用的是原序列的值而不是copy...原创 2020-03-25 00:39:45 · 228 阅读 · 0 评论 -
LibreOJ #6277. 数列分块入门 1 分块
https://loj.ac/problem/6277思路:分块+lazy+lazy+lazy标记。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<map>#define INF 0x3f3f3f3fusing names...原创 2020-03-25 00:04:03 · 126 阅读 · 0 评论 -
分块
写在前面:以前从来没用过分块,只是偶尔听大佬说过。最近训练学了分块,然而并没有听明白qt讲的东西。(还是太菜了orz)所以我决定从入门题开始,好好学习一下分块。哦对,莫队也没听懂orz。什么是分块:顾名思义,分块就是把一个序列分成若干块来处理,维护好每一块的信息。分块可以做什么:分块可以处理很多区间问题,虽然复杂度要比树状数组和线段树要高,但是代码比较简短、思想直观形象。为...原创 2019-03-27 20:51:46 · 2118 阅读 · 0 评论