容斥原理
11011b
你配不上自己的野心,也辜负了曾经历的苦难
展开
-
Codeforces 1342E Placing Rooks(容斥+组合数学)
题目链接:E. Placing Rooks题意:给定一个N*棋盘,要求摆放n个rooks(国际象棋里能横竖走的那啥),使得每个格子都能被rooks攻击到,并且正好有k对rooks能相互攻击到,求有多少种摆放方式题解:首先要求每个格子都能被访问,那么一定是每行都有一个或者每列都有一个,这两个的情况相当于翻转了棋盘,所有考虑每行都有一个的情况,最后答案*2即可(注意如果k=0,那么横竖情况正好重叠,此时不能*2),要使得恰好有k对能相互攻击,这里很玄妙,我们尝试几个例子能发现,有k对能相互攻击时,整个棋原创 2022-04-10 14:27:21 · 319 阅读 · 0 评论 -
Ccodeforces 547C Mike and Foam(容斥原理)
参考自大佬qianfujia 的博客代码题目链接:Mike and Foam题意:有n个数,q次操作,每次可以把一个数放入数组或取出,问每次操作后有多少对互质的数题解:我们可以对于每个新加入的数计算当前数组中有多少个元素和其不互质,那么互质个数=当前数组中元素个数-不互质个数,我们知道任何一个数都可以表示成质因子的乘积,那么任意两个拥有相同质因子的数一定不互质,由于数据a<1e5,我们可以直接暴力枚举质因子,而去重部分我们用容斥原理处理,我们将只由质因子的单次幂乘积组成的数都存下,可以先打转载 2022-03-22 09:09:07 · 180 阅读 · 0 评论