染色 bzoj-4487 Jsoi-2015 题目大意:给你一个n*m的方格图,在格子上染色.有c中颜色可以选择,也可以选择不染.求满足条件的方案数,使得:每一行每一列都至少有一个格子被染色,且所有的颜色必须都出现过. 注释:$1\le n,m,k\le 400$. 想法:显然直接求每个求,我们不难想到容斥原理. 我们用容斥来求出i行不染,j列不染,还剩(n-i)*(m-j)个格子这样我么根据那个容斥原理,先不考虑最后的条件:最后再将最后的信息加上. 可以得到式子. $\sum\limits_{…
BZOJ4487 [Jsoi2015]染色问题 题目描述 传送门 题目分析 发现三个限制,大力容斥推出式子是\(\sum_{i=0}^{N}\sum_{j=0}^{M}\sum_{k=0}^{C}(-1)^{N+M+C-i-j-k}*(k+1)^{i*j}*\binom{N}{i}*\binom{M}{j}*\binom{C}{k}\) 由于数据范围较小,支持\(O(nmC)\)的做法.直接暴力预处理幂和组合数,暴力计算即可. 是代码呢 #include <bits/stdc++.h> usi…
4487: [Jsoi2015]染色问题 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 211  Solved: 127[Submit][Status][Discuss] Description 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格.现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定:1.  棋盘的每一个小方格既可以染色(染成C种颜色中的一种) ,也可以不染色.2.  棋盘的每一行至少有一个小方格被染…
题目描述 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格.现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1.  棋盘的每一个小方格既可以染色(染成C种颜色中的一种) ,也可以不染色. 2.  棋盘的每一行至少有一个小方格被染色. 3.  棋盘的每一列至少有一个小方格被染色. 4.  种颜色都在棋盘上出现至少一次. 以下是一些将3×3棋盘染成C = 3种颜色(红.黄.蓝)的例子: 请你求出满足要求的不同的染色方案总数.只要存在一个位置的颜色不同,即认为两…
传送门 题意简述: 用ccc中颜色给一个n∗mn*mn∗m的方格染色,每个格子可涂可不涂,问最后每行每列都涂过色且ccc中颜色都出现过的方案数. 思路: 令fi,j,kf_{i,j,k}fi,j,k​表示至少有iii行没涂色,至少有jjj列没涂色,至少有ccc种颜色没涂色的方案数. 于是fi,j,k=CniCmjCck(c−k+1)(n−i)(m−j)f_{i,j,k}=C_n^iC_m^jC_c^k(c-k+1)^{(n-i)(m-j)}fi,j,k​=Cni​Cmj​Cck​(c−k+1)(…
逐个去除限制.第四个限制显然可以容斥,即染恰好c种颜色的方案数=染至多c种颜色的方案数-染至多c-1种颜色的方案数+染至多c-2种颜色的方案数…… 然后是限制二.同样可以容斥,即恰好选n行的方案数=至多选n行的方案数-至多选n-1行的方案数+至多选n-2行的方案数…… 限制三同理.即容斥套容斥套容斥.复杂度O(nmc). 注意到容斥式子和二项式定理有千丝万缕的联系,用二项式定理去掉一维变成O(nclogm). #include<iostream> #include<cstdio>…
一开始写了7个DP方程,然后意识到这种DP应该都会有一个通式. 三个条件:有色行数为n,有色列数为m,颜色数p,三维容斥原理仍然成立. 于是就是求:$\sum_{i=0}^{n}\sum_{j=0}^{m}\sum_{k=0}^{p}(-1)^{n+m+p-i-j-k}\times C_n^i\times C_m^j\times C_p^k\times (k+1)^{ij}$ 复杂度$O(n^3)$ 可以根据二项式定理优化: https://blog.csdn.net/werkeytom_ftd…
[BZOJ4487][JSOI2015]染色问题(容斥) 题面 BZOJ 题解 看起来是一个比较显然的题目? 首先枚举一下至少有多少种颜色没有被用到过,然后考虑用至多\(k\)种颜色染色的方案数. 那么显然没有颜色的限制,只有行列的限制. 那么我们钦定行必须被染色,这样子每一行的染色方案之和列数和颜色数相关,那么再容斥一下有多少列没有被染色就行了. #include<iostream> #include<cstdio> using namespace std; #define MA…
点此看题面 大致题意: 有一个\(n*m\)的矩形,先让你用\(C\)种颜色给它染色.每个格子可染色可不染色,但要求每行每列至少有一个小方格被染色,且每种颜色至少出现一次.求方案数. 高维容斥 显然题目中给你\(3\)个条件,而我们要一起容斥,所以就是高维容斥... 通过高维容斥,我们可以得到这样一个式子: \[\sum_{i=0}^n(-1)^{n-i}C_n^i\sum_{j=0}^m(-1)^{m-j}C_m^j\sum_{k=0}^c(-1)^{c-k}C_c^k(k+1)^{ij}\]…
题目分析: 一开始以为是直接用指数型生成函数,后来发现复杂度不对,想了一下容斥的方法. 对于有$i$种颜色恰好出现$s$次的情况,利用容斥原理得到方案数为 $$\binom{m}{i}\frac{P_{is}^{n}}{(s!)^i}(\sum_{j=0}^{m-i}(-1)^j\binom{m-i}{j}\frac{P_{js}^{n-is}}{(s!)^j}(m-i-j)^{n-is-js})$$ 值得注意的是$n-is-js<0$的时候,后面的式子直接等于$0$,特判一下就行了. 那么答案…
好像这个容斥还是明显的.一共有三个要求,可以用组合数先满足一个,再用容斥解决剩下的两个维.(反正这题数据范围这么小,随便乱搞都可以).用 \(a[k][i]\) 表示使用 \(k\) 种颜色,至少有 \(i\) 列没有染色的方案数,可以容斥预处理得到使用 \(k\) 种颜色染色使得每行每列均被染色的方案数.然后再容斥一下保证每种颜色都用上就可以了. #include <bits/stdc++.h> using namespace std; #define maxn 500 #define CN…
非常明显的摆了一个NTT模数.... 题目中求恰好\(k\),那么考虑求至少\(k\) 记\(g(k)\)表示至少\(k\)中颜色出现了恰好\(S\)次 那么,\[g(k) = \binom{M}{k} \frac{N!}{(S!)^k (N-Sk)!} * (M-k)^{N-Sk}\] 根据广义容斥原理,记\(f(i)\)表示恰好\(k\)种颜色出现了恰好\(k\)次 那么,\[f(i) = \sum \limits_{k = i}^M (-1)^{k - i} \binom{k}{i} g(…
Description 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格. 现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1.棋盘的每一个小方格既可以染色(染成C种颜色中的一种),也可以不染色. 2.棋盘的每一行至少有一个小方格被染色. 3.棋盘的每一列至少有一个小方格被染色. 4.每种颜色都在棋盘上出现至少一次. 请你求出满足要求的不同的染色方案总数.只要存在一个位置的颜色不同, 即认为两个染色方案是不同的 Input 输入只有一行 3 个整数n,m,…
先贴一个题解吧,最近懒得要死2333,可能是太弱的原因吧,总是扒题解,(甚至连题解都看不懂了),blog也没更新,GG http://blog.csdn.net/werkeytom_ftd/article/details/52527740 容斥原理真的很神奇233 #include <bits/stdc++.h> #define LL long long using namespace std; ; ; int fac[maxn],inv[maxn]; void pre() { fac[]=;…
题目 看到这个限制条件有点多,我们就一直容斥好了 先容斥颜色,我们枚举至少不用\(i\)种颜色 再容斥列,我们枚举至少不用\(j\)列 最后容斥行,枚举至少不用\(k\)行 容斥系数显然是\((-1)^i,(-1)^j,(-1)^k\),我们从\(c\)种颜色里选出\(i\)种不用,\(m\)列里选出\(j\)列不凃,\(n\)行里选出\(k\)行不凃,分别是\(\binom{c}{i},\binom{m}{j},\binom{n}{k}\) 对于剩下的\((m-j)(n-k)\)个格子,每个格…
容易想到枚举恰好出现S次的颜色有几种.如果固定至少有i种恰好出现S次,那么方案数是C(M,i)·C(N,i*S)·(M-i)N-i*S·(i*S)!/(S!)i,设为f(i). 于是考虑容斥,可得恰好i种的答案为Σ(-1)j-iC(j,i)·f(j) (j=i~min(M,⌊N/S⌋)).因为容斥是一个枚举子集的过程,在算至少i种的方案时,f(j)被计入了C(j,i)次. f显然可以通过预处理阶乘及其逆元线性地算出来.考虑怎么快速算后一部分.注意到模数,NTT没跑了.拆开组合数,可以发现是与j-…
(这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27update : 开学了终于搞到了550  可还行 *数据结构 *可持久化线段树/主席树 *bzoj3932 [CQOI2015] 任务查询系统 : 比较裸的主席树,任务查分一下就好了  cqoi真良心 *bzoj4026 dC Loves Number Theory :  数论个头啊,对每个数分解质因数…
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. 偶尔也会打一些比赛找找手感(比如HHHOJ的比赛,Luogu比赛,以及comet OJ上之前的CCPC题) CF和CC看情况,主要是我真的不太喜欢读英文题的恐怖感觉233 希望这段时间的努力可以让我不跪省选吧 2-26 早上晨跑完了就和杨浩讲了停课的事,不出意外地很轻松就通过了. 然后回班拿了点东…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
题意: 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格.现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定:  1.  棋盘的每一个小方格既可以染色(染成C种颜色中的一种) ,也可以不染色.  2.  棋盘的每一行至少有一个小方格被染色.  3.  棋盘的每一列至少有一个小方格被染色.  4.  种颜色都在棋盘上出现至少一次.  以下是一些将3×3棋盘染成C = 3种颜色(红.黄.蓝)的例子: 请你求出满足要求的不同的染色方案总数.只要存在一个位置的颜色不同,…
[BZOJ5306] [HAOI2018]染色(容斥原理+NTT) 题面 一个长度为 n的序列, 每个位置都可以被染成 m种颜色中的某一种. 如果n个位置中恰好出现了 S次的颜色有 K种, 则小 C 会产生 \(W_k\)的愉悦度. 求对于所有可能的染色方案, 他能获得的愉悦度的和.答案对 1004535809 取模 分析 显然颜色数量不超过\(tot=\min(m,\frac{n}{S})\) 我们需要求出现了\(S\)次的颜色有\(i\)种的方案数.这个东西不太好求,考虑容斥,求出现了\(S…
「JSOI2015」染色问题 传送门 虽然不是第一反应,不过还是想到了要容斥. 题意转化:需要求满足 \(N + M + C\) 个条件的方案数. 然后我们就枚举三个数 \(i, j, k\) ,表示当前方案中,至少不用 \(k\) 种颜色,至少不涂 \(i\) 行.至少不涂 \(j\) 列. 然后直接组合数算(式子不难看懂),最后容斥即可. 那么写出来就是: \[ ans = \sum_{i = 0}^n \sum_{j = 0}^m \sum_{k = 0}^c (-1)^{i + j +…
题面 传送门 思路 这道题的核心在于"恰好有$k$种颜色占了恰好$s$个格子" 这些"恰好",引导我们去思考,怎么求出总的方案数呢? 分开考虑 考虑把恰好有$s$个格子的颜色,和不是$s$个颜色的格子分开来考虑 那么,显然答案可以用这样的一个式子表示: 令$lim=min(\lfloor\frac ns\rfloor,m)$,那么: $ans=\sum_{i=0}^{lim}w_iC_m^iC_n^{is}\frac{(is)!}{(s!)^i}g(m-i,n-is…
题目链接:洛谷 题目大意:$n$个位置染$m$种颜色,如果出现次数恰为$S$次的颜色有$k$种,则对答案有$W_k$的贡献,求所有染色方案的答案之和$\bmod 1004535809$. 数据范围:$n\leq 10^7,m\leq 10^5,S\leq 150,0\leq W_i\leq 1004535808$ 首先是要推式子的. 首先我们知道,出现次数恰为$S$次的至多$up=\min(m,\frac{n}{S})$种. 设恰好出现$S$次的颜色至少$i$种,则 $$f_i=C_m^i*\f…
几个解决k染色问题的指数级做法 ——以及CF908H题解 给你一张n个点的普通无向图,让你给每个点染上k种颜色中的一种,要求对于每条边,两个端点的颜色不能相同,问你是否存在一种可行方案,或是让你输出一种可行方案,或是让你求出满足条件的最小的k.这种问题叫做k染色问题.众所周知,当k>2时,k染色问题是NP的.但是相比$O(k^n)$的暴力搜索来说,人们还是找到了很多复杂度比较优越的指数级做法.本文简单介绍其中几种. 因为对于$O(n^22^n)$来说,$O(n^2)$小得可以忽略不计,所以在本文…
[容斥原理] 对于统计指定排列方案数的问题,一个方案是空间中的一个元素. 定义集合x是满足排列中第x个数的限定条件的方案集合,设排列长度为S,则一共S个集合. 容斥原理的本质是考虑[集合交 或 集合交的补集]和[集合并 或 集合并的补集]之间相互转化的问题. 定义目标函数为f(m),已知函数g(T).(例如已知集合并,则T表示所有T个集合的集合并,通常g(T)=C(n,T)*T个集合的集合并) 当两者都不是补集或两者都是补集时,有f(S)=Σ(-1)|T|-1g(T),其中T为S的非空子集,即奇…
n个格子排成一行,有m种颜色,问用恰好k种颜色进行染色,使得相邻格子颜色不同的方案数. integers n, m, k (1 ≤n, m ≤ 10^9, 1 ≤ k ≤ 10^6, k ≤ n, m). m种颜色取k种 C(m, k) 这个可以放最后乘 那么问题就变成只用k种颜色第一个格子有k种涂法 第二个有k-1种 第三个也是k-1种 一共就是k*(k-1)^(n-1) 这种算法仅保证了相邻颜色不同,总颜色数不超过k种,并没有保证恰好出现k种颜色 也就是多算了恰好出现2种 恰好出现3种...…
题意:有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=…
[Codeforces 997C]Sky Full of Stars(排列组合+容斥原理) 题面 用3种颜色对\(n×n\)的格子染色,问至少有一行或一列只有一种颜色的方案数.\((n≤10^6)\) 分析 显然任意染色的方案数为\(3^{n^2}\),我们考虑求出没有一行一列只有一种颜色的方案数,然后相减. (1)首先考虑仅仅没有全部是一种颜色的列,每一列任意染色有\(3^n\)种方案,去掉每一列只有一种颜色的方案有3种,共\(3^n-3\)种,n列就有\((3^n-3)^n\)种. (2)再…
题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. 2. 差分序列: 给你一列数 a[i][1],a[i][2],a[i][3],a[i][4],a[i][5]…… 那么a[i][j]=a[i-1][j+1]-a[i-1][j], 即后一行是上一行相邻两项的差(第一行除外). 如果给你一个多项式, 比如 f(x)=(x+1)*(x+2)*……*(x…