解题:HEOI 2016 求和】的更多相关文章

题面 我们需要知道这样一个东西(大概叫 斯特林公式?) $S(i,j)=\frac{1}{j!}\sum\limits_{k=0}^{j}(-1)^k C_j^k(j-k)^i$ 那么就是推啊 $=\sum\limits_{i=0}^n\sum\limits_{j=0}^iS(i,j)*2^j*j!$ 然后问题来了,因为后面还有$2^j$和$j!$,我们发现这里展开斯特林数也没用,所以我们要把它们甩出去 因为$j>i$时$S(i,j)==0$,所以让后面求和到$n$,然后前提$2^j$和$j!$…
Description 题库链接 求 \[f(n)=\sum_{i=0}^n\sum_{j=0}^i S(i,j)\times 2^j \times (j!)\] \(S(i, j)\) 表示第二类斯特林数.对 \(998244353\) 取模. \(1\leq n\leq 100000\) Solution 由于 \(S(i,j)=0,i\leq j\) ,我们可以把式子改写成 \[f(n)=\sum_{i=0}^n\sum_{j=0}^n S(i,j)\times 2^j \times (j…
[HEOI 2016] sort 解题报告 码线段树快调废我了= = 其实这题貌似暴力分很足,直接$STL$的$SORT$就能$80$ 正解: 我们可以二分答案来做这道题 假设我们二分的答案为$a$,我们就可以将整个序列分为两个集合,一个是大于等于$a$的,一个是小于$a$的 那么我们就可以将大于等于$a$的赋值为$1$,小于$a$的赋值为$0$,那么对于排序,我们就变成了线段树区间覆盖,升序就将区间中所有的$0$覆盖到前面,$1$覆盖到后面,反之亦然. 最后我们查询询问位置的数,是$1$说明二…
题目链接 戳我 \(Solution\) 先化简式子: \[f(n)=\sum_{i=0}^n\sum_{j=0}^i\begin{Bmatrix} i \\ j \end {Bmatrix}*2^j*j!\] \[f(n)=\sum_{j=0}^n2^j*j!\sum_{i=0}^n\begin{Bmatrix} i \\ j \end {Bmatrix}\] 根据第二类斯特林数的公式: \[f(n)=\sum_{j=0}^n2^j*j!\sum_{i=0}^n\sum_{k=0}^j\fra…
Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排 序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q 位置上的数字. Input 输入数据的第一行为两个整数n和m.n表示序列的长度,m表示局部排序的次数.1 <= n, m <= 10^…
闲来无事,把这玩意儿补上. OI生涯中第一次正经的考试.挂的很惨. Day -1 不小心把机油(雾)sm惹毛了. 好像没啥别的事儿. Day 0 说好了上午直接去机房,然而临时说让我们上完前两节课再去机房,整个人都不好了……于是乎前两节课颓废了. 去机房之前成功借到了sm的外套,背上一个角落里商标上写的made in Turkey真心叼…… 在机房好像是复习了一会儿. 去机房之前默默看了看不跟我去打省选的妹子,然后11:00去食堂吃饭(良心食堂开饭这么早),由于某些原因想减肥,于是乎基本没吃.…
[注意事项] 为了体现增强版,题目限制和数据范围有所增强: 时间限制:1.5s 内存限制:128MB 对于15% 的数据,1<=N,Q<=1000. 对于35% 的数据,1<=N,Q<=10000. 对于50% 的数据,1<=N,Q<=100000,且数据均为官方数据. 对于100% 的数据,1<=N,Q<=1000000. 请注意常数因子对于程序运行的影响. 并查集很简单,并查集就是倒序处理,表示删除一个点的标记,删除后不会再加回来,删完后,合并当前点与其…
超级恶心,先后用set维护right,再用主席树维护,全部超时,本地测是AC的.放心,BZOJ上还是1S限制,貌似只有常数优化到一定境界的人才能AC吧. 总之我是精神胜利了哦耶QAQ #include <iostream> #include <cstring> #include <cstdio> #define lb lower_bound #define ub upper_bound #include <set> using namespace std;…
题解: 发现多决策且明显无后效性,果断dp,那么转移方程F[i]=F[j]+1 设R[I]为改变之后的最大值,L[i]为改变之后的最小值 由于只能改变一个元素 所以转移的条件是 (j<i && R[j]<a[i] && a[j]<L[i]) 写成这样 就光然大悟 裸三维偏序诶 于是CDQ 乱搞即可 人懒不想打归并... #include <algorithm> #include <iostream> #include <cst…
\(\\\) Description 给出一颗树,开始只有 \(1\) 号节点有标记. \(\ C\ x\) 对 \(x\) 号节点打标记 \(\ Q\ x\) 查询 \(x\) 号节点深度最深的有标记的祖先 \(\\\) Solution 链剖做法: 查询直到跳到第一个有权的重链上,线段树上二分即可.太板了不说了. DFS序+线段树做法: 一遍DFS求出DFS序,子树大小以及节点深度. 用线段树维护DFS序,每个节点记录覆盖当前区间深度最深的节点编号.标记下放的时候只需选择深度更深的作为答案即…