数据结构
文章平均质量分 62
灯灯登登
杂学派,热衷各种技术
展开
-
代码源 每日一题 div1合法括号串
合法括号串题意给你一个只有括号组成的字符串,然后给你若干询问,每次输出这个询问的区间中有多少对合法的括号子序列思路需要注意,这题询问的是合法子序列的数量。如果不考虑区间这个限制,那么可以只用一个栈维护左括号,每次看看右括号能不能找到一个左括号即可。如果有区间的限制怎么办?再回顾一下上面用一个栈维护的过程,可以发现,每次匹配的时候,每个右括号都是找到最近的一个左括号进行匹配。所以,如果要询问一个区间内合法子序列的数量,那么就等价于这个匹配对的左右端点都在这个区间内!到这里,这题又要变成一个二维数原创 2022-04-22 14:23:06 · 1364 阅读 · 0 评论 -
代码源每日一题 div1 #603 丹钓战
题目链接丹钓战人傻了,又是这种题看不出来怎么处理,前面刚写过一个类似的问题“Z”型矩阵,同样为二维数点问题,再写一篇题解吧。可以看出来,对于每个从1~i的区间我们很好求,直接模拟即可。但是这些询问要求我们处理[l,r][l,r][l,r]之间的询问,这如何处理?稍微观察一下有一个重大的性质,然而我死活观察不出来。先从1~i开始处理,对于[l,r][l,r][l,r]的数对(ai,bi)(a_i,b_i)(ai,bi),只要他在栈中的上一个数对的下标<l<l<l,那么这个数对必然是原创 2022-04-09 20:13:38 · 831 阅读 · 0 评论 -
代码源div1每日一题“Z”型矩阵
题目“Z”型矩阵这题真是阴间啊,听dls听半天不知道怎么维护这个信息,现在大概记录一下我想清楚这个题的心路历程考虑最暴力的方法,对于每个左上角(X,Y)(X,Y)(X,Y)计算一个Z形矩阵,那么可以再枚举一下Z的右下角那个点,可以发现这个做法是O(n3)O(n^3)O(n3)的。需要用树状数组优化一下。对于每个左上角(X,Y)(X,Y)(X,Y),考虑其向左以及向左下角延伸的最大长度,记为L,那么可以发现,我们需要数的点都会落在yi∈[y,y−l+1]y_i\in[y, y-l+1]yi∈[y,y−原创 2022-04-07 22:15:59 · 579 阅读 · 0 评论 -
2021 icpc第二场网络赛 L Euler Function
链接大意每次给你两种操作,一种是区间称,另一种是求ph[a[l]]+ph[a[l+1]]...+ph[a[r]]ph[a[l]] + ph[a[l+1]]...+ph[a[r]]ph[a[l]]+ph[a[l+1]]...+ph[a[r]]思路首先,观察到区间乘是套了一个函数的,所以我们不能直接乘,得想办法把这个化简一下我们知道对于欧拉函数有这么一个性质, 当p是质数时p不是x的因子时,ph(p∗x)=p∗ph(x)ph(p*x)=p*ph(x)ph(p∗x)=p∗ph(x)p是x的因子时,原创 2022-04-01 21:32:59 · 361 阅读 · 0 评论