题意:给定 m 种颜色,把 n 盆花排成一直线的花涂色.要求相邻花的颜色不相同,且使用的颜色恰好是k种.问一共有几种涂色方法. 析:首先是先从 m 种颜色中选出 k 种颜色,然后下面用的容斥原理,当时没想出来,如果是只用一种颜色,那么肯定不行,如果用两种颜色,可以有这么方法, 2 * (2-1) ^ (n-1)种,如果是只用 i 种那么就是  i * (i-1) ^ (n-1).然后依次求就好.再就是求组合数的时候,由于太大,不能用递推,所以要用逆元. 代码如下: #pragma comment…
传送门 题意简述:对n个排成一排的物品涂色,有m种颜色可选. 要求相邻的物品颜色不相同,且总共恰好有K种颜色,问所有可行的方案数.(n,m≤1e9,k≤1e6n,m\le1e9,k\le1e6n,m≤1e9,k≤1e6) 思路: 容斥原理套路: 先不考虑是否选全kkk种颜色,方案数为Cmk∗k∗(k−1)n−1C_m^k*k*(k-1)^{n-1}Cmk​∗k∗(k−1)n−1. 然后枚举剩下的至少有几种颜色没选来容斥掉非法情况: 于是Ans=Cmk∑i=k1(−1)k−iCkii(i−1)n−…
题意:有N朵花,在M种颜色中选择恰好k种不同的颜色,将这N朵花染色,要求相邻的两朵花颜色不相同. 分析:若限制改为选择不超过k种颜色将N朵花朵染色,则方案数\(f(N,k) = k*(k-1)^{N-1}\),第一朵可以在k个颜色中任意选择,第二朵可以有k-1个选择,第三朵也有k-1.... 但是f(N,k)种方案中包含了使用了少于k个颜色的方案数,要减去这些方案数.设没有使用的颜色数为i,当i=1时,减去只使用1种颜色的方案数\(C(k,1)*f(N,k-1)\);当i=2时,方案数已经被i=…
Problem F. ColorDescriptionRecently, Mr. Big recieved n flowers from his fans. He wants to recolor those flowers withm colors. The flowers are put in a line. It is not allowed to color any adjacent flowers withthe same color. Flowers i and i + 1 are said…
题目链接:http://codeforces.com/gym/100548/attachments 有n个物品 m种颜色,要求你只用k种颜色,且相邻物品的颜色不能相同,问你有多少种方案. 从m种颜色选k种颜色有C(m, k)种方案,对于k种颜色方案为k*(k-1)^(n-1)种.但是C(m, k)*k*(k-1)^(n-1)方案包括了选k-1,k-2...,2种方案. 题目要求刚好k种颜色,所以这里想到用容斥. 但是要是直接C(m, k)*k*(k-1)^(n-1) - C(m, k-1)*(k…
这题设$f(i)$为$gcd(i,j)=x$的个数,根据容斥原理,我们只需减掉$f(i×2),f(i×3)\cdots$即可 那么这道题:$$ans=\sum_{i=1}^n(f(i)×((i-1)×2+1))$$ 注意要开$longlong$,否则会炸 #include<cstdio> #include<algorithm> using namespace std; long long f[100003]; int main(){ int n,m; long long k=0;…
H - Visible Trees Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2841 Description There are many trees forming a m * n grid, the grid starts from (1,1). Farmer Sherlock is standing at (0,0) poi…
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; typedef long long LL; const LL N=2e6;// 题目太坑了 提交 1e6会莫名错误 ; LL f[N+]; LL inv_f[N+]; LL n,m,k; LL q_pow (LL x,LL k) {//快速幂求逆元 LL ans=; while (k) { ) ans=ans*x…
题面 Bzoj 题解 考虑容斥原理,所有人都有特产的方案数等于: 至少零个人没有特产\(-\)至少一个人没有特产\(+\)至少两个人有特产\(-...\) 接着考虑其中一种情况怎么求(假设现在至少有\(i\)个人没有特产): 对于每种特产,我们分开考虑,假设当前特产有\(a[j]\)个,则我们可以看作是将\(a[j]\)个相同的球放入\(n-i\)个相同的盒子中,允许出现空盒(因为之前说的是至少),利用插板法,方案数为:\(C_{n-i+a[j]-1}^{n-i-1}\) 最后当前情况的贡献绝对…
Description 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模1000000007.(是质数喔~) Input 一行两个整数N,K Output 一行为答案. Sample Input 3 2 Sample Output 6 HINT [样例说明] 假设原集合为{A,B,C} 则满足条件的方案为:{AB,ABC},{AC,ABC},{BC,ABC},{AB},{AC},{BC}…