首页 > TAG信息列表 > ifac
【考试总结】2022-07-05
数叶子 点之间互相独立,对答案的贡献之和它的度数有关,设当前计算的点的度数为 \(d\) 此时问题本质上是在 \([1,m]\) 中放 \(d\) 块板,每种放法向答案贡献划分出来的 \(d+1\) 个区间两两相邻的长度的乘积 使用 \(x=\sum\limits_{i=1}^x[1]\) 的想法处理乘积,也就是让每相邻的一对计算数据结构+DP 笛卡尔树 SP3734题解
题意: 有 \(n\) 列表格,第 \(i\) 列有 \(a_i\) 个格子,问在 \(n\) 列表格中有多少种放置 \(k\) 个棋子的方法使没有棋子在同一列和同一行。(如果中间有一个“格子”是空的,那么不算在同一行) 思路很妙。 如果所有 \(a_i\) 都相等(一个矩形),答案明显是 \(\binom {a_i} k \times \binom n kluogu P2791 幼儿园篮球题
https://www.luogu.com.cn/problem/P2791 赞美出题人(bushi 如果做过luogu P6031 CF1278F Cards 加强版 这题,按照套路推一推就可以推出来了 注意其中有一步要用范德蒙德卷积 code: #include<bits/stdc++.h> #define ll long long #define mod 998244353 #define M 20000050 #defin【解题报告】洛谷P6475 建设城市
【解题报告】洛谷P6475 建设城市 题目链接 https://www.luogu.com.cn/problem/P6475 思路 考虑排列组合 如果两个分居左右 我们可以枚举一下两个楼房的高度,假设 \(x<n<y\) ,那么 \(x\) 左边有 \(x-1\) 个楼房,右边有 \(n-x\) 个楼房,我们设我们已经枚举 \(x\) 的高度到 \(i,1 \leUVa 12590 - Guards II (组合数学+容斥)
题目链接:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4035 特别恶心的分类讨论,讨论四个角的放置方法即可 具体讨论见代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1000010; co[CF997C] Sky Full of Stars
前言 T7猎天下第一! 题目 洛谷 CF 讲解 这种题当然优先考虑容斥。 没有什么思路的时候就直接写暴力式子然后试图优化它。 首先我们先写出至少有一行或一列颜色相同的方案数: \[2\times \sum_{i=1}^n(-1)^{i-1}\times C(n,i)\times 3^{n^2-in+i} \]行列等价,所以要乘 \(2\)。 但显然我牛客练习赛77 F 小G的排列
求有多少个长度为\(n\)的排列,满足最长的相邻差不超过\(1\)的子区间长度小于等于\(m\)。 \(n,m\le 5000\) 老套路容斥。 先用个DP计算出所有的方案:一个方案可以看成,把一个\(1\)到\(n\)的顺序排列划分成\(i\)段,然后将这\(i\)段进行排列,并且其中长度大于等于\(2\)的段反转。于是设\(HAOI2018 染色
设 G[k] 表示恰好出现 S 次的颜色恰好有 k 种, 数值为方案总数。设 n = min(M, floor(N/S)), 这道题的答案就是 Σ1≤i≤n Wi × G[i]。 设 F[k] 表示恰好出现 S 次的颜色至少有 k 种, 数值为方案总数。这个很好算, 先选出颜色 \(\dbinom Mk\), 然后把没选出的颜色当成无色, 按照可重排191NF Frightful Formula
一个矩阵,给出第一行第一列,后面每个位置的数由此得到:\(F_{i,j}=F_{i,j-1}*a+F_{i-1,j}*b+c\) 求\(F_{n,n}\)。 答案对\(10^6+3\)取模。 \(n\le 2*10^5\) 如果\(c=0\),考虑组合意义:对于从\((x,1)\),贡献相当于\((x,1)\)到\((n,n)\),每次可以向右或向下,向右有\(a\)的贡献,向下有\(b\)的[CF1342E] Placing Rooks
前言 数学就要多练练 题目 洛谷 CF 讲解 首先易证当\(n \le k\)时无解,\(k=0\)时答案为\((n-1)!\) 此时由于行和列是等价的,所以我们先只考虑对于每行只放一个车,最后将答案乘二即可 考虑放下一个车之后,如果当前列没有车,则对攻击数量不会有贡献,我们希望有\(k\)对车可以和互相攻击,则我[HDU5184] Brackets
前言 很好的一道卡特兰数入门题,不板也不难 题目 HDU 讲解 括号匹配是经典的卡特兰数问题 首先我们把无解与唯一解的情况特判出来,再考虑问题 传统的卡特兰数的括号匹配对应的模型为从\((0,0)\)走到\((n,n)\)而不越过\(y=x\)的方案数 而现在我们的起点变成了\((a,b)\),其中\(a\)为已Atcoder TypicalDPContest N~T
https://tdpc.contest.atcoder.jp/assignments N 简单的树形DP,把加边转化成加点,组合数简单算一下。 CO int N=1e3+10; int fac[N],ifac[N]; vector<int> to[N]; int siz[N],dp[N]; void dfs(int u,int fa){ siz[u]=1; for(int v:to[u])if(v!=fa){ dfs(v,u);ARC93F Dark Horse
Dark Horse 有 \(2^n\) 个人打锦标赛,他们的过程是随机一个排列,然后按照这个排列站好。每轮是第 \(2i − 1\) 个人和第 \(2i\) 的人比赛,败者淘汰。 你是 \(1\) 号选手,你碰到 \(a_1, a_2,\dots, a_m\) 会输,碰到剩下的会赢。如果比赛和你无关,那么编号小的赢。 求有多少个排列,能够使你洛谷 P5408 【模板】第一类斯特林数·行
传送门 首先,有 \[ x^{\overline n}=\sum_k\begin{bmatrix}{n\\ k}\end{bmatrix}x^{k}\\ \] 那么我们只需要求出\(x^{\overline n}\)即可,考虑倍增 \[ x^{\overline 2n}=x^{\overline n}(x+n)^{\overline n} \] 假设我们现在已经求出了\(x^{\overline n}\),考虑如何求出\((x+n)^{\ove「PKUSC2018」真实排名
分类讨论这个数(\(a_i\))翻不翻倍。 若翻倍,则\(\text{[$a_i$ ,2$a_i$ -1]}\)内的数必须翻倍,要不然会影响答案。 若不翻倍,则\(\text{[$\lceil \frac{a_i}{2} \rceil$, $a_i-1$]}\)内的数必须不翻倍,要不然也会影响答案。 剩下的计算可以组合数解决,注意特判\(a_i=0\)的时候要输出\(C_n^Codeforces Round #589 (Div. 2)E(组合数,容斥原理,更高复杂度做法为DP)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int f[257],fac[257],ifac[257];const long long mod = 1e9+7;int qpow(int x,int y){ int tamp=1; while(y){ if(y&1) tamp=1ll*tamp*x%mod; x=1ll*x*x%m[BZOJ5510][DP][容斥]TJOI2019:唱,跳,rap和篮球
BZOJ5510 简单容斥一下变成统计至少有i对连续的1234 然后随便组合数算一下就完了 Code: #include<bits/stdc++.h> #define mod 998244353 using namespace std; inline int read(){ int res=0,f=1;char ch=getchar(); while(!isdigit(ch)) {if(ch=='-') f=-f;ch=getchar()123
CF997C , Luogu 有一个 \(n \times n ( n \leq 10^6)\)的正方形网格,用红色,绿色,蓝色三种颜色染色,求有多少种染色方案使得至少一行或一列是同一种颜色。结果对 \(998244353\) 取模 有一个很显然的\(O(n^2)\)的容斥做法:枚举至少有多少行和多少列被染了色,那么显然答案为 \(ans=\sum_{i=bzoj2839 集合计数(容斥)
2839: 集合计数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 883 Solved: 490[Submit][Status][Discuss] Description 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模1loj #6216. 雪花挂饰
(今天碰到的题怎么这么小清新 $n$ 个不相同的点,$q$ 组询问,每次给定 $l,r$,问在 $n$ 个点中,选出 $x$ 个点 $(x \in [l,r])$,用边连起来,能构成多少种不同的树 $n,q \leq 10^6$ sol: 首先知道 $n$ 个点的树有 $n^{n-2}$ 个,因为这题标号不同就算不同,所以 $i$ 个点不同的树有 $C_n^i \times