把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 45 下一页
摘要: 我觉得这就是个大暴力好吧但是还是比正解跑得快。 首先我们看到形如三个$Max-Min$相乘的形式。 这个显然可以拆成8个式子然后分开计算。 这里以三个max相乘为例表明怎么分治计算。 对于没有跨立区间中点的询问,我们递归计算。 对于跨过区间中点的区间,我们对于每个序列双指针出右边对应的前缀max分界 阅读全文
posted @ 2021-07-12 06:45 275307894a 阅读(41) 评论(0) 推荐(1)
摘要: 首先我们考虑这个图的特殊性质。 显然这是个仙人掌树对吧。 我们可以圆方树。 然后就变成了两两方点之间距离,距离定义为2^方点数量。 这个东西线段树随便维护好吧。 就是拆成上下两段计算,上行是永久加入,下行是临时加入要撤销。 时间复杂度$O(nlogn)$ code: #include<bits/st 阅读全文
posted @ 2021-07-11 21:56 275307894a 阅读(40) 评论(0) 推荐(1)
摘要: 题面传送门 不知道为什么题解区的那位大哥要和二分图扯上关系。 直接考虑根号分治。 如果一个集合的元素个数大于$\sqrt n$,那么直接将这个集合的元素扔到桶里然后枚举每个集合每个元素查有没有哪个集合有$2$个元素。这一部分的复杂度是$O(n\sqrt n)$的。 如果它小于$\sqrt n$,那么 阅读全文
posted @ 2021-07-11 21:02 275307894a 阅读(58) 评论(0) 推荐(0)
摘要: 题面传送门 大概可以算线段树单侧递归的板子。 这个东西看上去没法修改 我们考虑合并的时候怎么合并。 我们要维护每个区间的最大值和该区间的长度,那么答案显然是第一个区间的长度。 然后对于每个区间,它的左区间的答案肯定能全部选入,那么考虑右区间。 右区间选入的值肯定不能小于左区间的最大值。 我们考虑右区 阅读全文
posted @ 2021-07-11 06:27 275307894a 阅读(53) 评论(0) 推荐(1)
摘要: 题面传送门 我们考虑设$Sum_i$表示$[1,i]$组成的数。 然后就是让求$Sum_r-Sum_l\times 10^=0$ 移项得到$Sum_r=Sum_l\times 10^$ 两边同乘$10l$得到$Sum_r\times 10l=Sum_l\times 10r$ 然后移项得到$\frac 阅读全文
posted @ 2021-07-10 22:27 275307894a 阅读(62) 评论(0) 推荐(0)
摘要: 题面传送门 hash那个很屑我们不去管。考虑确定性算法。 首先我们要保证区间最大减去最小为$(r-l)k$ 然后如果$k=0$直接看$gcd$即可。 否则看$gcd$是不是$k$的倍数且区间没有重复的数显然是对的。 然后关于区间没有重复的数直接维护前驱即可。 时间复杂度$O(nlogn)$ code 阅读全文
posted @ 2021-07-10 22:19 275307894a 阅读(58) 评论(0) 推荐(0)
摘要: 考试的时候写了个常数大的要命的代码。然后思维复杂度不知道比std高多少。 首先我们知道一个结论:联通块个数等于点数-边数。 点数是平凡的,我们考虑边数。 边实质上是一个三维数点,三只log显然不行。 考虑对边差分,所以有$[1,r]\(减去\)[1,l-1]$,这样是二维数点两个log有70分。 发 阅读全文
posted @ 2021-07-10 22:07 275307894a 阅读(57) 评论(0) 推荐(1)
摘要: 一眼就感觉这个东西很APIO。 然后就真那道题的弱化版。 首先我们显然处理出每个点往右边跳能跳到哪里出$k$ 因为$a$非负所以这个东西显然单调可以双指针指出来。 然后发现我们得到的是一个树形结构。于是愉快地树上倍增即可。 时间复杂度$O((m+n)logn)$ code: #include<bit 阅读全文
posted @ 2021-07-10 21:58 275307894a 阅读(43) 评论(0) 推荐(1)
摘要: 你会发现这个东西不太好做。 然后你想到它最多只能有$41$的质数为因数。 然后就可以写个爆搜大概是枚举因数。 你发现这个东西复杂度大概是$O(能过)$,但是它有多测。 这个时候把表打出来就好了。 code: #include<bits/stdc++.h> #define I inline #defi 阅读全文
posted @ 2021-07-10 21:32 275307894a 阅读(57) 评论(0) 推荐(1)
摘要: 我真是tcl居然没有调出来。 首先套路地拆成上行和下行两端。 先考虑上行,对于一个点$u$如果满足条件那么它一定满足$d_l-d_=u$ 移项得到$d_l=d_u+u$ 这不是链上数一个数的个数吗,dfs的时候差分询问开桶记录即可。 然后下行也是一样的。 总的时间复杂度$O(mlogn+n)$时间复 阅读全文
posted @ 2021-07-09 22:15 275307894a 阅读(68) 评论(1) 推荐(1)
摘要: 这个显然是最长上升子序列长度。 考虑怎么求这个东西。 我们设$dp_{i,j}$表示在$A$中到了$i$,已经使用了$j$次的在$B$中最大能到达的位置。 然后考虑两种转移,一种是$A$后移,一种是$B$跳到最近的位置。 时间复杂度$O(nk)$,然而第二个包最后一个点过不去,特判了qwq code 阅读全文
posted @ 2021-07-09 21:55 275307894a 阅读(45) 评论(0) 推荐(0)
摘要: 首先根据四色定理这个颜色肯定不超过$4$ 然后题目中给了$7$的样例是4,然后手推一下$1$到$6$即可。 然后考虑$4$怎么构造。 容易发现除了$2$其它都是奇数。 然后我们对这个东西奇偶染色容易发现上下只要颜色不同即可。 所以上面$12$下面$34$就好了。 code: #include<bit 阅读全文
posted @ 2021-07-09 21:46 275307894a 阅读(51) 评论(0) 推荐(0)
摘要: 题面传送门 其实这道题是一眼秒了的。 因为$A$有正负所以显然按$A$正负开两颗平衡树维护即可。 但是并没有这么简单。 首先$A=0$,这个要特判。 然后它还会重复撤销一个不等式多次所以也要特判。 大概没了。时间复杂度$O(nlogn)$ code: #include<bits/stdc++.h> 阅读全文
posted @ 2021-07-09 06:45 275307894a 阅读(64) 评论(0) 推荐(0)
摘要: 很妙的题目,考试的时候没做出来我果然是菜。 考虑对这个东西分治。 对于两边的分治下去即可。 然后对于跨越区间中点的特别处理。 对于左边处理出$Sum_i$表示$[i,m]$内的最大前缀长度,$Maxn_i$表示$[i,m]$内的最大子段和。 右边同理,那么对于一对$(i,j)\(答案就是\)\max 阅读全文
posted @ 2021-07-09 06:34 275307894a 阅读(58) 评论(1) 推荐(1)
摘要: 为什么我的$O(n)$做法比$O(nloglogn)$做法跑得还慢啊! 首先S1的长度为$i$的子串有$n-i+1$个。 然后全部长度为$i$的子串有$2i$个。 $i$成为答案长度的一个充分条件为$2i>n-i+1$ 带个$i=log(n+1)$进去发现成立。这启发我们将长度小于$i$的全部打出来 阅读全文
posted @ 2021-07-09 06:27 275307894a 阅读(57) 评论(0) 推荐(0)
摘要: 我们发现每个值的贡献其实是独立的。 所以这启发我们对于每个值单独计算。 题目中真正有意义的合并只有$O(n)$次,每次暴力归并所以是$O(n2+m)$的。 但是这个显然不够优。 我们考虑启发式合并。 这样再用个set维护就可以了。时间复杂度$O(nlog2n)$ 用线段树合并可以一只log code 阅读全文
posted @ 2021-07-09 06:21 275307894a 阅读(84) 评论(0) 推荐(0)
摘要: 题面传送门 我们设$dp_{i,j}$为到了第$i$个数,当前数为$j$的答案。 那么最后答案为$\sum\limits_{dp_{n,i}}$ 然后这个转移方程显然是$dp_{i,j}=\sum\limits_{dp_[k}\times j$ 看上去这个东西可以拉格朗日插值。 每次前缀和使次数加一 阅读全文
posted @ 2021-07-08 06:18 275307894a 阅读(64) 评论(0) 推荐(0)
摘要: 题面传送门 我们考虑拉格朗日插值的式子$\sum\limits_{y_i\prod\limits_{j\ne i}{\frac}}$ 然后这道题式子是连续的,所以可以处理$inv_n=\frac{1}{n!}$ 然后提前一些东西得到$\frac{k!}{(k-n-1)!}\sum\limits_{y 阅读全文
posted @ 2021-07-07 20:34 275307894a 阅读(61) 评论(0) 推荐(0)
摘要: A 考虑无解的情况。显然$n$为奇数无解,然后$)\(在开头,\)($在结尾无解。 然后似乎没有其它反例了。 于是就过了。 code: #include<bits/stdc++.h> #define I inline #define max(a,b) ((a)>(b)?(a):(b)) #defin 阅读全文
posted @ 2021-07-06 22:07 275307894a 阅读(53) 评论(0) 推荐(0)
摘要: A 没什么好说的,就是模拟。 code: #include<bits/stdc++.h> #define I inline #define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b) ((a)<(b)?(a):(b)) #define abs(x) ((x 阅读全文
posted @ 2021-07-05 21:09 275307894a 阅读(107) 评论(0) 推荐(0)
摘要: 题面传送门 发现我们只要能够去掉$R$就是多项式求逆板子。 我们考虑构造多项式$F_R(x)=xnF(\frac{1})$ 然后发现这个其实就是$F$倒过来。 我们知道$F(x)=G(x)Q(x)+R(x)$ 那么代入$x=\frac{1}$其实也是成立的,变成$F(\frac{1})=G(\fra 阅读全文
posted @ 2021-07-05 20:51 275307894a 阅读(54) 评论(0) 推荐(0)
摘要: 题面传送门 题目就是要让我们求这个东西$\ln(F(x))$ 如果我们设$G(x)=\ln(F(x))$ 对两边求导,因为右边那个是复合函数,求导公式是$f(g(x))=f'(g(x))g'(x)$ $\ln'(x)=\frac{1}$就得到$G'(x)=\frac{F'(x)}{F(x)}$ 然后 阅读全文
posted @ 2021-07-04 22:36 275307894a 阅读(207) 评论(0) 推荐(0)
摘要: 题面传送门 我们考虑像多项式求逆那样求$G(x)2=F(x)(xn)$ 首先我们要求出$H(x)2=F(x)(x{\frac{n+1}{2}})$ 然后显然$G(x)-H(x)=0(x^{\frac{n+1}{2}})$ 两边平方就有$G(x)^2-2G(x)H(x)+H(x)2=0(x{\frac 阅读全文
posted @ 2021-07-04 18:57 275307894a 阅读(41) 评论(0) 推荐(0)
摘要: 题面传送门 没想到卷积还能做匹配。学到了学到了。 首先我们将$A$反序,这样我们就要$A_$和$B_$相同。 如果我们将两个这样的设一个权值,那么如果一个数全部加起来为$0$,就是可以匹配的。 我们可以设为$(A_j-B_)^2$ 但是这里有通配符。 如果我们把权值改为$A_jB_(A_j-B_)^ 阅读全文
posted @ 2021-07-02 20:25 275307894a 阅读(51) 评论(0) 推荐(0)
摘要: 题面传送门 首先爆枚每个数肯定是不行的。 考虑优化,我一开始写的是搜$g$然后判断是否可行。这样的大概是$107$中情况。 然而还要乘个$n$,复杂度铁定爆炸,卡常卡到$4.4s$实在卡不动。 然后发现其实$f$的左右两边是互为相反数的,只要搜一半即可。 时间复杂度$O(nC_{9}{\frac{2 阅读全文
posted @ 2021-07-01 20:04 275307894a 阅读(50) 评论(0) 推荐(0)
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 45 下一页
浏览器标题切换
浏览器标题切换end