洛谷题面传送门 题解里一堆密密麻麻的 Raney 引理--蒟蒻表示看不懂,因此决定写一篇题解提供一个像我这样的蒟蒻能理解的思路,或者说,理解方式. 首先我们考虑什么样的牌堆顺序符合条件.显然,在摸牌任意时刻,你手中的牌允许你继续无限制摸的牌是一段区间,即存在一个位置 \(p\),满足你在不使用新摸出来的牌的机会下能够恰好摸到第 \(p\) 张牌.考虑如果我们新摸出来一张牌会产生怎样的影响,假设摸出一张 \(w_i=x\) 的牌,那么我们肯定会在耗完目前手中牌的机会,也就是摸完第 \(p\)​ 张…
题目分析: 把$0$卡牌看成$-1$.题目要求前缀和始终大于等于$1$. 最后添加一个$-1$,这样除了最后一位之外大于等于1,最后一位等于0. 构造圆排列.这样的话一个圆排列只有一个满足的情况,然后考虑我们多出了一个$-1$,所以除去. 代码: #include<bits/stdc++.h> using namespace std; ; ; int n,m; int a[maxn]; void read(){ scanf("%d",&n); ;i<=n;i+…
题面传送门 wjz:<如何优雅地 AK NOI> 我:如何优雅地爆零 首先,按照这题总结出来的一个小套路,看到多项式与组合数结合的题,可以考虑将普通多项式转为下降幂多项式,因为下降幂和组合数都可以用阶乘相除的形式表示,而对于两个组合数相乘我们有恒等式 \(\dbinom{n}{m}\dbinom{m}{k}=\dbinom{n}{k}\dbinom{n-k}{m-k}\),这样我们可以将原式中待枚举变量 \(m\) 从两个组合数中转移到一个组合数(\(\dbinom{n-k}{m-k}\))中…
https://www.lydsy.com/JudgeOnline/problem.php?id=2956 https://www.luogu.org/problemnew/show/P2260 暴力推式子即可 #include<cstdio> #include<algorithm> #include<cstring> #include<vector> using namespace std; #define fi first #define se seco…
题意 https://www.luogu.com.cn/problem/P2260 思路 具体思路见下图: 注意这个模数不是质数,不能用快速幂来求逆元,要用扩展gcd. 代码 #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f #define ll long long const int N=200005; const int mod=19940417; const double eps=1e-8; const…
题面传送门 神题. 考虑将所有连通块缩成一个点,那么所有连好边的生成树在缩点之后一定是一个 \(n\) 个点的生成树.我们记 \(d_i\) 为第 \(i\) 个连通块缩完点之后的度数 \(-1\),那么共有 \(\prod\limits_{i=1}^na_i^{d_i+1}\times\dfrac{(n-2)!}{\prod\limits_{i=1}^nd_i!}\) 个这样的生成树,稍微解释一下这个柿子,因为每个连通块的每条边都有可能是由其中 \(a_i\) 个点中任意一点连出的,因此每个连…
#274. [清华集训2016]温暖会指引我们前行 题意比较巧妙 裸lct维护最大生成树 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; #define lc t[x].ch[0] #define rc t[x].ch[1] #define pa t[x].fa co…
UOJ_274_[清华集训2016]温暖会指引我们前行_LCT 任务描述:http://uoj.ac/problem/274 本题中的字典序不同在于空串的字典序最大. 并且题中要求排序后字典序最大. 因此我们要求的路径一定是最大生成树上的路径. 于是变成了LCT模板题,动态维护最大生成树即可. 注意每次find可能会T,于是我又写了个并查集... 代码: #include <stdio.h> #include <string.h> #include <algorithm>…
UOJ 275. [清华集训2016]组合数问题 组合数 $C_n^m $表示的是从 \(n\) 个物品中选出 \(m\) 个物品的方案数.举个例子,从$ (1,2,3)(1,2,3)$ 三个物品中选择两个物品可以有 \((1,2),(1,3),(2,3)\) 这三种选择方法.根据组合数的定义,我们可以给出计算组合数$ C_m^n$的一般公式: \[ C_n^m=\frac{n!}{m!(n-m)!} \] 其中 \(n!=1×2×⋯×n\).(额外的,当 n=0n=0 时, n!=1n!=1)…
UOJ #269. [清华集训2016]如何优雅地求和 题目链接 给定一个\(m\)次多项式\(f(x)\)的\(m+1\)个点值:\(f(0)\)到\(f(m)\). 然后求: \[ Q(f,n,x) = \sum_{k = 0}^{n}f(k){n\choose k}x^k(1 - x) ^{n - k} \pmod{998244353} \] 考虑一个很巧妙的变化:组合数多项式! 设: \[ f(n)=\sum_{i=0}^m\binom{n}{i}h_i \] 可以这么玩的原因是\(\b…