摘要:
卡特兰数: 1.通项公式:h(n)= C(n,2n) / (n+1) = C(n, 2n) - C(n +1, 2n) 2.递推公式:h(n)=(4n-2)/(n+1)*h(n-1); h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)*h(0) 3.前几项为:h(0)= 阅读全文
摘要:
有n+1个房间。从1-n个房间。每个房间有两扇门。一扇去i+1的房间另一扇去编号为pi的房间。 起点为1,终点为n+1,对应第i个各点,如果我奇数次到达,那么下一步走到a【i】的位子,如果是偶数次到达,那么下一步走到a【i】+1的位子。问到达n+1的房间至少要走多少次 解析: f(i,0)代表第一次 阅读全文
摘要:
现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)输出方案数对31011的模 摘自大佬博客: https://blog.sengxian.com/solutions/bzo 阅读全文
摘要:
你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子。在一开始的时候,相邻的格子之间都有墙隔着。你想要打通一些相邻房间的墙,使得所有房间能够互相到达。在此过程中,你不能把房子给打穿,或者打通柱子(以及柱子旁边的墙)。同时,你不希望在房子中有小偷的时候会很难抓,所以你希望 阅读全文
摘要:
给定一个n个点m条边的无向图,求出这个图的生成树的总数。 暴力解法:枚举n-1条边的所有情况,判断每种情况的图是否连通的即可。工具:关联矩阵+行列式+柯西-比内公式+拉普拉斯定理=矩阵树定理 阅读全文
摘要:
题意:给出n个无序的数以及m个操作,每个操作由两个数组成,第一个数是操作的方式,第二个数 i 是操作的范围,若第一个数是1,则给 1-i 个数按升序排序,若第二个数是2,则给 1-i 个数按降序排列。输出所有操作完成后的序列。 阅读全文
摘要:
让你计算所有连续子序列的最大值-最小值的和。 (单调栈) 对于一个数Ai来讲,如果其有贡献的价值,要么是-Ai作为最小值,要么是Ai作为最大值。 那么Ans=ΣAi*maxn-Ai*minn. 阅读全文
摘要:
给出一个字母串,k满足:长度至少为k的字串一定包含某字母c,求最小的k 一个数组记录每个字母上一次出现的位置,用来计算另一个数组:记录每个字母与其相邻的相同字母的最大距离(设0和len两个位置一定有相同的字母),答案就是这个数组中的最小值啦~ 阅读全文
摘要:
const int N = 2e6 + 5;//开两倍空间 int n; arr p,cnt; int l,r,m; ll sum = 0,ans; int main() { // file("test"); sdf(n); For(i, 1, n) sdf(p[i]); For(i, 1, n) { sum += abs(p... 阅读全文