摘要:
第一类: S(n,m)表示把n个元素组合成m个圆排列的方案数(注意是圆排列,n个元素的圆排列方案数:n!/n=(n-1)!) 性质: 说几个: 组合 O(n^2)递推式: 考虑最后一个放在哪里。 代数 第一个式子有一个不错的证明(): 考虑递推式,画成横坐标m纵坐标n的图,只能往上或者往右上走,边权 阅读全文
摘要:
题目大意:n幢楼,从左边能看见f幢楼,右边能看见b幢楼 楼高是1~n的排列。 问楼的可能情况 把握看到楼的本质! 最高的一定能看见! 计数问题要向组合数学或者dp靠拢。但是这个题询问又很多,难以dp 如果把能看见的和之后挡住的看成一组的话。。。 那么可以看成这样: 每一组要固定第一个,,后面可以随便 阅读全文
摘要:
#include<bits/stdc++.h>#define reg register int#define il inline#define numb (ch^'0')#define int long longusing namespace std;typedef long long ll;il 阅读全文
摘要:
T1: 本题其实不算太简单 xor前缀差分,转化为[l,r]中选择两个数xor最大(边界的l-1再考虑一下) 按位贪心显然,区间取trie可持久化即可 考虑到一个区间的取法,是从左边答案,右边答案,和左右各拿一个。 线段树可能区间合并长度过长,复杂度无法保证 分块?复杂度有保证! n,q范围也比较有 阅读全文
摘要:
LCT好题。调到半夜 前两个操作非常像access和makert 有了“树点涂色”的经验,可以直接做到。 一个非常有用的发现是,如果先makert(途中access改变颜色),再rt=x, 完成换根时候,线段树每个值就是到新的根节点的颜色数了。 错误点: 1.pushup 2.pd 3.access 阅读全文