容斥原理
clover_hxy
The secret oppotunities are hidden inside every failure....
展开
-
bzoj 2393: Cirno的完美算数教室(容斥原理)
2393: Cirno的完美算数教室Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 296 Solved: 182[Submit][Status][Discuss]Description~Cirno发现了一种baka数,这种数呢~只含有2和⑨两种数字~~现在Cirno想知道~一个区间中~~有多少个数能被baka数整除~原创 2016-05-05 16:52:58 · 905 阅读 · 0 评论 -
codeforces 451E. Devu and Flowers (容斥原理+组合数学)
题目描述传送门题目大意:有n个盒子,每个盒子中有fi个物品,从每个盒子中选取不超过fi的物品,使物品总数为s的方案数。题解利用容斥原理: ans=至少0个超过限制的-至少一个超过限制的+至少两个超出限制的-…… 那么如果不考虑限制,那么相当于把s个物品放到n个盒子中允许为空的方案数。 我们可以先固定哪些盒子超过了限制,s-=(fi+1),然后在随便放。代码#include<iostream>#原创 2017-03-23 14:25:39 · 528 阅读 · 0 评论 -
codeforces 285E. Positions in Permutations (容斥原理+DP)
题目描述传送门题目大意:一个1到n的排列p[i],一个位置是好位置当且仅当|p[i]-i|=1,求恰好有k个好位置的排列数。题解f[i][j][0/1][0/1]f[i][j][0/1][0/1] 表示该填第i位,已经填好了j位,i-1位是否填了,i位是否填了的方案数。 容斥: ans=至少k个好位置∗C(k,k)∗(n−k)!−至少(k+1)个好位置∗C(k+1,k)∗(n−k)!+......原创 2017-03-23 15:21:47 · 701 阅读 · 0 评论 -
bzoj 3622: 已经没有什么好害怕的了 (容斥原理+DP)
题目描述传送门题目大意:两个长度为n的数组中的数两两配对。使满足a>b的对数恰好比满足a题解将a,b都排序 f[i][j]f[i][j]表示匹配到第i个,满足a>b的配对个数为j的方案数。代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 2003原创 2017-03-23 16:46:38 · 379 阅读 · 0 评论 -
bzoj 4361: isn (容斥+DP+树状数组)
题解传送门题目大意:给出一个长度为n的序列A(A1,A2…AN)。如果序列A不是非降的,你必须从中删去一个数, 这一操作,直到A非降为止。求有多少种不同的操作方案,答案模10^9+7。题解f[i][j]f[i][j]表示选取到第i个元素,第i个元素必须选,一共选出了j个元素,选出的元素构成一个不降的子序列的方案数。 这个DP可以用树状数组优化,O(n2logn)O(n^2logn)的求解。 h原创 2017-03-23 18:45:47 · 773 阅读 · 0 评论 -
bzoj 4596: [Shoi2016]黑暗前的幻想乡 (矩阵树定理+容斥原理)
题目描述传送门题目大意:n个点要修n-1条路(形成一棵树)。有n-1个公司,每个公司可以修建某些路径。求每个公司恰好修建一条路的方案数。题解生成树计数一般都是用基尔霍夫矩阵求行列式来做,关键是怎么解决每个公司恰好修建一条路的限制。 根据容斥原理答案就是:至少0个公司没有修路的方案-至少1个公司没有修路的方案+至少2个公司没有修路的方案……代码#include<iostream>#include<原创 2017-03-24 07:36:52 · 478 阅读 · 0 评论 -
bzoj 4455: [Zjoi2016]小星星 (容斥原理+DP)
题目描述传送门题目大意:给出一个图和一棵树,让树上的点对应图上的点,问有多少种合法的对应方案。题解一开始想了一个非常不科学的思路.f[i][j][k]f[i][j][k]表示树中的点i对应图中的点j,i的子树对应的集合是k。 但是如果这么写的话不管是容斥还是转移的时间复杂度度都很高,容斥的基本不可做。 然后我们考虑怎样会产生出不合法的对应,那么如果多个点对应了图上的一个点那么一定是不合法的对吧。原创 2017-03-24 11:26:10 · 415 阅读 · 0 评论 -
bzoj 3881: [Coci2015]Divljak (AC自动机+容斥原理+LCA+树状数组)
题目描述传送门题目大意:Alice有n个字符串S_1,S_2…S_n,Bob有一个字符串集合T,一开始集合是空的。 接下来会发生q个操作,操作有两种形式: 1 P,Bob往自己的集合里添加了一个字符串P。 2 x,Alice询问Bob,集合T中有多少个字符串包含串S_x。(我们称串A包含串B,当且仅当B是A的子串) Bob遇到了困难,需要你的帮助。题解简化一下问题,实际上的问题就是给出了一些原创 2017-03-31 21:01:46 · 621 阅读 · 0 评论 -
SDOI2017 Round1解题报告
虽然考的很差,很不想去再面对这套题,但是只有直面失败才能走向成功。从新审视这套题,才发现自己存在的问题和差距。Day 1T1题解mobius反演。。。 ∏ni=1∏mj=1fi[gcd(i,j)]\prod_{i=1}^n\prod_{j=1}^m fi[gcd(i,j)] ∏nk=1fi[k]∑ni=1∑mj=1[gcd(i,j)=k]\prod_{k=1}^n fi[k]^{\sum_{i=原创 2017-04-10 19:56:25 · 1380 阅读 · 1 评论 -
bzoj 3771: Triple (容斥原理+生成函数+FFT)
题目描述传送门题目大意:有价值不同的n个物件,求从中选取1-3件物品,能组成多少种不同的价值,已经每种价值的方案数。题解容斥原理+生成函数+FFT代码#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#define N 200003#define pi acos(-1)原创 2017-04-17 20:51:00 · 628 阅读 · 0 评论 -
bzoj 3294: [Cqoi2011]放棋子 (容斥原理+组合数+DP)
题目描述传送门题目大意:在一个n*m的棋盘中放入一些颜色不同的棋子,每个格子最多只能放一个棋子,不同颜色的棋子不能放在同一行或同一列,求合法的方案数。题解相当于每行每列只能被一种颜色占据。 那么我们可以给每个颜色分配行列数。g[p][i][j]g[p][i][j]表示第p中颜色占据i行j列的方案数。 如果能求出g,那么我们就可以做二维背包. f[t][i+k][j+l]+=f[t−1][i][原创 2017-06-05 20:13:28 · 628 阅读 · 0 评论 -
bzoj 3812: 主旋律(容斥原理+DP)
题目描述传送门题目大意:有多少边的子集删去之后整个图仍然强联通题解直接求强联通的子图不是很好求,所以我们考虑用子图的个数-不强联通的子图个数。 不强联通的子图有什么特点呢?将强连通分量缩点后会形成一个节点数>=2的DAG。 一个DAG肯定由一些没有出度的点构成,那么我们可以考虑枚举没有出度的点的子集T。那么S-T中的边和S-T 到T之间的边也可以随便连。但是我们这样连出来不能保证S-T中没有出度原创 2017-03-23 11:27:27 · 551 阅读 · 0 评论 -
codeforces 585E. Present for Vitalik the Philatelist (容斥原理)
题目描述传送门题目大意:有n张邮票,可以从中任意选取一张,然后可以从剩下的邮票中选取任意张构成一个集合,使集合中所有邮票的价值与选取出的价值互质。题解这道题的容斥系数与莫比乌斯函数mu有关。 我们先从质数开始考虑,我们选出所有某个质数的倍数构成备选的集合,那么从剩下的元素中任意选一个,再从备选集合中选出任意个,构成的都是合法方案。但是我们考虑6,在计算2,3的时候其实都计算到了他。所以要用容斥来去原创 2017-03-22 07:23:54 · 928 阅读 · 0 评论 -
bzoj 1042: [HAOI2008]硬币购物(容斥原理)
1042: [HAOI2008]硬币购物Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1803 Solved: 1051[Submit][Status][Discuss]Description 硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值原创 2016-05-05 19:11:06 · 518 阅读 · 0 评论 -
bzoj 3129: [Sdoi2013]方程(容斥原理+组合数学+数论)
3129: [Sdoi2013]方程Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 386 Solved: 235[Submit][Status][Discuss]Description给定方程 X1+X2+. +Xn=M我们对第l..N1个变量进行一些限制:Xl X2 Xn1 我们对第n1 +原创 2016-08-21 16:41:51 · 1341 阅读 · 0 评论 -
Rivendell’s pearls(pearls) (hash+容斥原理)
Rivendell’s pearls(pearls)【问题描述】Rivendell 是一个心灵手巧的男孩子,他在闲暇的时候喜欢做一些小饰品。有一天 Rivendell用漂亮的珍珠做成了 n串手链,并且每串手链都由 4个珍珠构成,并且每粒珍珠都有一种颜色,颜色用小写字母和数字表示。现在他突然想知道这n 串手链中有多少对有且仅有k 粒珍珠是不同颜色的。【输入格式】第一行两个原创 2016-08-14 19:45:29 · 348 阅读 · 0 评论 -
bzoj 2669: [cqoi2012]局部极小值(dp+容斥原理)
2669: [cqoi2012]局部极小值Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 537 Solved: 280[Submit][Status][Discuss]Description有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次。如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这原创 2016-09-18 17:47:16 · 1187 阅读 · 0 评论 -
校内互测 光 (数论+容斥原理)
光【问题描述】天猫有一个长方形盒子,长宽分别为A,B。这个长方形盒子的内壁全部是镜面。天猫在这个盒子的左下方放了一个激光灯。这个灯可以照向盒子内的任意角度。现在天猫想要打开这个激光灯,但是他想让光线按照如下规则照射:1.这束光必须恰好打到盒子边缘反射D次,并且不能碰到任意一个角落(除了出发点以及结束点)。2.这束光必须到达盒子右上角,并且结束反射。天猫想要知道,所有合法的光线路线的原创 2016-11-13 20:22:43 · 374 阅读 · 0 评论 -
bzoj 3198: [Sdoi2013]spring (hash+容斥原理)
3198: [Sdoi2013]springTime Limit: 40 Sec Memory Limit: 256 MBSubmit: 947 Solved: 296[Submit][Status][Discuss]DescriptionInputOutputSample Input3 31 2 3 4 5原创 2017-03-07 10:11:39 · 478 阅读 · 0 评论 -
bzoj 1272: [BeiJingWc2008]Gate Of Babylon (容斥原理+Lucas定理)
题目描述传送门题解容斥部分:至少0个超过限制的-至少1个超过限制的+至少2个超过限制的-…. 剩下的就是组合数学的锅了,用插板法然后化简就可以啦。代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define LL long long using namespa原创 2017-03-27 21:36:35 · 409 阅读 · 0 评论 -
bzoj 2839: 集合计数 (容斥原理)
题目描述传送门题目大意: 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得它们的交集的元素个数为K,求取法的方案数题解首先我们 考虑确认出交集中的K个元素,选择的方案数是C(n,k)C(n,k).那么剩下的元素共n−kn-k个,剩下的元素构成的子集是2n−k2^{n-k}我们可以从这些子集中任意选择,然后与选择出的元素拼接到一起形成合法的子原创 2017-03-21 22:00:03 · 685 阅读 · 0 评论 -
bzoj 4710: [Jsoi2011]分特产 (容斥原理+DP)
题目描述传送门题解代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 2000#define p 1000000007#define LL long long using namespace std;int n,m,a[N+3],c[N+3]原创 2017-03-21 21:58:50 · 729 阅读 · 0 评论 -
bzoj 2986: Non-Squarefree Numbers (容斥原理)
题目描述传送门题目大意:选出第K个有平方因子的数。题解之前做过一道基本上一样的题bzoj 完全平方数代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define LL long long #define N 1000000using namespace std原创 2017-03-22 07:28:23 · 785 阅读 · 0 评论 -
bzoj 4487: [Jsoi2015]染色问题 (容斥原理+组合数学)
题目描述传送门题目大意:棋盘是一个n×m的矩形,分成n行m列共n*m个小方格。现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1. 棋盘的每一个小方格既可以染色(染成C种颜色中的一种) ,也可以不染色。 2. 棋盘的每一行至少有一个小方格被染色。 3. 棋盘的每一列至少有一个小方格被染色。 4. 种颜色都在棋盘上出现至少一次。 题解枚举至少原创 2017-07-06 07:21:41 · 2326 阅读 · 0 评论