heoi2016专题

DTOJ 4538. 「TJOI / HEOI2016」排序

题意 在 2016 年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。 这个难题是这样子的:给出一个 $1 $ 到 n n n 的全排列,现在对这个全排列序列进行 m m m 次局部排序,排序分为两种: ( 0 , l , r ) (0, l, r) (0,l,r) 表示将区间 [ l , r ] [l, r] [l,r]

P4092 [HEOI2016/TJOI2016]树 [ 树剖]

传送门 单点修改 , 链查询查到了就break  线段树查询时先找到区间 , 区间内尽量往右边找 , 这样深度更大 #include<bits/stdc++.h>#define N 100050#define M N*2using namespace std;int n,m,tag[N];int first[N],next[M],to[M],tot;int id[N],siz[N

NTT+分治FFT--P4091 [HEOI2016/TJOI2016]求和

传送门 这道题很妙啊 首先看题目中的式子,令新的 f ( n ) = ∑ i = 0 n S ( n , i ) × 2 i × ( i ! ) f(n)=\sum_{i=0}^nS(n,i)\times 2^i\times (i!) f(n)=∑i=0n​S(n,i)×2i×(i!),如果能快速求出这个式子的值,那么 a n s = ∑ i = 0 n f ( i ) ans=\sum_{i