
瞎搞
bandiaoz_cjl
这个作者很懒,什么都没留下…
展开
-
G. Mike and Feet 思维,数据结构
G. Mike and Feet 题意 一个长度为 nnn 的数组,询问所有长度为 kkk 的区间最小值的最大值(k=1,2,…,nk = 1,2,\dots,nk=1,2,…,n)。 题解 可以换个角度考虑,求答案为 aia_iai 时,区间长度的可取范围; 这个可以先把数组按照值的大小排序,然后用 set 维护每个区间,一个严格小的数可以分隔较大的数的答案,然后看看每个数所在的区间长度即可; 区间长度的可取范围是 [1−len[i]][1-len[i]][1−len[i]] ,那么按照 aia_ia原创 2021-06-28 18:18:16 · 133 阅读 · 0 评论 -
Acwing 1402. 星空之夜 连通块哈希
Acwing 1402. 星空之夜 题意 给一个二维01矩阵,寻找连通块,相似的连通块用同一个字母表示,可以通过旋转、对称得到的就是相似。要求输出的矩阵字典序最小。 题解 dfs搜索即可 哈希方式:计算每两个点的欧几里得距离之和,就是这个连通图的哈希值。相似的图形哈希值一定相同,大部分情况下是哈希值不会重复。 代码 #pragma region //#pragma optimize("Ofast") #include <algorithm> #include <cmath> #i原创 2021-01-28 20:33:50 · 285 阅读 · 2 评论 -
洛谷 P3939 数颜色
洛谷 P3939 数颜色 题意 有 nnn 只兔子,每个兔子有各种颜色 aia_iai ,然后给出 mmm 次操作: 1 l r c 表示询问区间 [l,r][l,r][l,r] 内有多少种不同的颜色; 2 x 表示交换 ax,ax+1a_x,a_{x+1}ax,ax+1 。 解法 用vector 数组记录每个颜色的出现位置即可,这样询问操作可以使用upperbound()-lowerbound() 来查询,因为每次交换一定是相邻两个交换,所以只要二分找到两个颜色的位置,然后位置加一或者减一即可。原创 2020-11-30 20:41:26 · 186 阅读 · 0 评论