当前搜索:
-----------------------------------点分治一般步骤:1.找到树的重心(避免当树退化成链时复杂度升高)2.从重心出发分治统计路径分治过程:统计当前节点子树中的符合条件的路径数加到ans中标记当前点避免重复减去当前节点子树节点中的符合条件的路径数(这样剩下的就是经过当...
4.3莫名想开一个日记,有时间就记一些不大不小的事,比如每天学了什么或者路遇哪位神犇最主要的目的是要监督一下自己的学习进度发现自己有个大毛病是学的东西记不久,大致原因我想了想有两点:理解不深;学的时候只打模板题生活在惶恐之中,所以逆流而上却注定要不断地退回去4.9虽然说是日记但是日更我感觉肯定是做...
题意
给出一个长度为nn的数列an{a_n},一个区间[l,r][l,r]的和定义为其中的数字之和,相同的数字不重复算
求第k大的和
题解
首先怎么求一个区间的和.对于aia_i维护它之前最近的与它相同的数的位置pre[ai]pre[a_i]
对于固定的右端点维护每一个左端点到它的和...
题解传送门
新姿势
dsu on tree 模板题
#include
#include
#include
#define N 100005
#define LL long long
using namespace std;
vectorint>e[N];
int n,c[N],sz[...
题意
维护支持插入和询问的AC自动机,强制在线
题解
二进制分组(可以百度xhr的答辩论文)
对于每一个分组单独建立AC自动机,合并分组时暴力重构
还有一个细节是对于重串,要直接踢掉,可以用set或者hash判一下
因为一样的串在不同的AC自动机里出现还是当一次算
代码又慢又长…...
题面传送门
题解
随便统计一下每个单词出现的次数
详见代码
#include
#include
#include
#include
#include
using namespace std;
int n,size,pos[155];
struct node{
int fail...
题意
给出nn个由三元组(si,ei,pi)(s_i,e_i,p_i)表示的区间,si,eis_i,e_i表示头尾(包括头尾),pip_i表示这个区间的权重
给出mm个询问,询问包含位置xx的按权重排序前kk小的区间的权重和
输入先给出所有三元组,询问强制在线
题解
主席树的权值线段...
题意
支持在平面直角坐标系内进行操作:
1.加入一个圆心在(x,y)(x,y)且过原点的圆
2.询问点(x,y)(x,y)是否被之前加入的所有圆包含(在圆内或圆心上)
强制在线
题解
询问即判断(X−xi)2+(Y−yi)2≤x2i+y2i(X-x_i)^2+(Y-y_i)^2\l...
题意
即求Ei=∑i−1j=1(qj/(j−i)2)−∑nj=i+1(qj/(j−i)2)E_i=\sum_{j=1}^{i-1}(q_j/(j-i)^2)-\sum_{j=i+1}^{n}(q_j/(j-i)^2)
题解
令f(x)=qx ,g(x)=1/x2f(x)=q_x\ ,g(...
题面
题解
fft模板题
单向膜拜:
从多项式乘法到快速傅里叶变换
FFT 学习笔记
大致理解为将多项式从系数表示法转化为点值表示法然后再变回系数表示法
#include
#include
#include
#define N 2621450
#define pi acos(...
题意
给出n个一元一次同余方程X≡ai(modX≡a_i(mod ri)r_i)
求最小的XX,模数不一定互质
题解
模数非互质不能直接上中国剩余定理
任意找两个式子出来:
{X≡a1(mod r1)X≡a2(mod r2)\left\{\begin{array}\\X≡a_1(m...
题意
给出a,b,c,d,求最小的SS满足:
S≡a(modS≡a(mod 23)23)
S≡b(modS≡b(mod 28)28)
S≡c(modS≡c(mod 33)33)
输出S-d
题解
orz zzk 中国剩余定理
直接求这个方程组就好了
#include...
题解不会写,标记一下,抄的是同学的板子#include<cstdio>
#include<algorithm>
#define N 50010
#define M N*30
using namespace std;int n,m,sz,ans,a[N],root[M],si...
中文题面
题解
设f[x]f[x]为&x==x的数的个数,g[x]g[x]为x转化为二进制以后1的个数
转化一下,求等于0的组数即 所有组合情况-含有位为1的组合数
容斥求一下含有位为1的组合数
∑x=1220=(−1)g[x]−1∗(2f[x]−1)\sum^{2^{...
题面传送门题解一个数&x==x的条件可以理解为转换为二进制后,x为1的位要对应为1设f[x]f[x]为范围内与&x==x的数的个数若yy转换为二进制后的所有1位x都有(yy为xx的子集),则对f[x]f[x]有贡献的数一定对f[y]f[y]有贡献所以可以枚举子集转移,但是这样算会有...
题面传送门题解好早以前就考过,当时根本不会O(nm)O(nm)的dp很简单,但是不够用啊。考虑通过障碍物转移
题意
给出一个长度为n的循环节,问有t个这样循环节的数列的最长不下降子序列
题解
若要让一个循环节的所有元素都出现则最多要n个循环节,若有相同的应该更少,因为n不大,直接构造长度为n×nn \times n的数列做最长不下降子序列.若剩下还有没用上的,一定是选择出现次数最多的元素插在n×...
题意
现在需要你维护一个长度为n的序列,需要支持三种操作:
1.区间加 2.区间翻转 3.区间求最大值
题解
很明显splay裸题,复习了一下splay,感觉忘得一干二净
按下标建splay树
对于区间加和区间翻转:把l-1 splay到根,把r+1 splay到根的右儿子,然...
参考blog
了解学习了一下莫队,果然是个很好用的东西啊,我为什么现在才学…
用途
处理一些离线的区间问题
一般来说,令ansi,jans_{i,j}表示询问区间[i,j][i,j]的答案,则ansi,jans_{i,j}可以在常数的复杂度内由ansi−1,jans_{i-1,j}或a...
2124: 等差子序列题面传送门题解只要找有没有长度为3的等差子序列是一个排列,用一个辅助数组b[i]=0/1b[i]=0/1记录ii有没有出现过按顺序修改bb,如果数为xx,则查找是否有以xx为等差中项的数对(l,r)(l,r),并且这对数应该是一个出现了另一个没出现(b[l]==1b[l]==...