组合计数
文章平均质量分 76
组合计数
黑夜和白天
过去无可挽回,未来可以改变
展开
-
容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings
题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹配給限定死了思维。其实我们知道实际上就是对原图进行选边,有的边不能选而已,那么其实我们直接容斥就行了怎么容斥呢? 就是对于上面那些树边,我们目的是要求不选,并且两两匹配,如果我们不考虑这个直接全部选的话,那么我们就可能会选到1条树边,2条树边,3条树边依次类推,那么我们就可以直接减就好了 我们定义一定选其原创 2021-11-24 13:04:28 · 724 阅读 · 8 评论 -
组合计数 ---- 2020 EC final B. Rectangle Flip 2(枚举+组合计数)
题目大意 题目大意: 给你一个n×mn\times mn×m的矩阵问你可以截取出多少个不同的矩阵 然后每次会有一个点变成无效点 动态输出每次剩余可挖的矩阵是多少? 解题思路: 首先我们可以这么搞就是对于每个点我们维护它上面最近的无效点,然后暴力枚举包含当前即将变成无效点的矩阵有多少个暴力减掉就行了 具体实现就是 在固定了xxx值之后,我们枚举矩阵左上角和右下角所在的y值就行了 直观上面复杂度是O(n4)O(n^4)O(n4)的但是不是每个点最多被访问nnn次,总的复杂度是O(n3)O(n^3)O(n3)原创 2021-11-22 20:59:20 · 589 阅读 · 0 评论 -
组合计数 ---- 2020 icpc 上海 The Journey of Geor Autumn(思维划分问题计数+预处理优化)
题目链接 题目大意: 就是你有一个nnn的全排列,现在问你去重排这个排列使得对于给定的kkk,满足对于任意的ai,i>ka_i,i>kai,i>k的都有ai>min(ai−1,...,ai−k)a_i>min(a_{i-1},...,a_{i-k})ai>min(ai−1,...,ai−k) 求排列数 解题思路: 这里很妙的一点就是我们知道对于最小的数肯定是一定要放到[1,k][1,k][1,k]里面去的,然后最小的数肯定会把数列切成两半,前面那一半是随便选,原创 2021-11-22 20:19:21 · 248 阅读 · 0 评论 -
容斥 + 爆搜打表 ---- 2020年南京icpc H.Harmonious Rectangle
题目链接 题目大意: 就是给你一个二维平面{(x,y)∣1≤x≤n,1≤y≤m}\{(x,y)|1\leq x\leq n,1\leq y \leq m\}{(x,y)∣1≤x≤n,1≤y≤m},你现在有3种颜色,你可以给写平面的点涂上颜色,问你至少存在4个点(x1,y1),(x2,y2),(x1,y2),(x2,y1)(x1,y1),(x2,y2),(x1,y2),(x2,y1)(x1,y1),(x2,y2),(x1,y2),(x2,y1)使得 color(x1,y1)=color(x1,y2)&原创 2021-11-12 16:31:24 · 652 阅读 · 0 评论 -
组合计数 ---- Codeforces 737C Div2 C. Moamen and XOR [多阶段决策计数dp]
题目链接 题目大意: 有nnn个数。每次数范围是[0,2k]∣k∈[0,3e5][0,2^k]|k\in[0,3e5][0,2k]∣k∈[0,3e5] 问你有多少种情况这nnn个数的与大于等于异或 首先我们分析一下: 对于多阶段决策的的计数并且对后面决策有影响那么我们大概率的dp方程可以这么写 dp[i][j]选到了第i位,有j种状态dp[i][j]选到了第i位,有j种状态dp[i][j]选到了第i位,有j种状态 首先对于这种位运算的题目我们就拆位,每一位前面有两种状态: 就是已经出现一个二进制位大于原创 2021-08-10 18:11:24 · 137 阅读 · 0 评论 -
组合计数 ---- 732 Div2 D. AquaMoon and Chess
题目链接 题目大意: 就是给你一个1×n1\times n1×n的棋盘,上面初始状态下有若干个棋子,对于每个棋子有可以有两种移动的条件(假设第iii个位置上有一枚棋子) 棋子可以移动到i+2i+2i+2的位置上,如果i+1i+1i+1的位置上有棋子,第i+2i+2i+2上没有棋子,并且i+2i+2i+2没有超过nnn 棋子可以移动到i−2i-2i−2的位置上,如果i−1i-1i−1的位置上有棋子,第i−2i-2i−2上没有棋子,并且i−2i-2i−2没有低过000 现在给你棋盘的初始状态,问你棋盘有多原创 2021-07-13 10:50:59 · 279 阅读 · 0 评论 -
组合计数 ---- codeforces1312 D. Count the Arrays
为什么是组合数学呢?qwq一开始以为是dp。。。 每个数都是不同的(除了那个相同的以外)所以你只用考虑每个数的分配总数不用。因为一旦分好顺序就就定了,这就说明我们只要考虑一半就可以了。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <.原创 2020-05-21 17:45:05 · 161 阅读 · 0 评论 -
组合计数 ---- Codeforces Round #370 (Div. 2)D. Memory and Scores[dp]
题目大意:Memory 和 Lexa分别取数,取ttt轮,每一轮取的数字的范围为[−k,k][−k,k][−k,k],并且将取的数字加他们的得分,问有多少种方案Memory的得分严格大于Lexa。Memory和Lexa分别的初始分数为a,ba,ba,b 解题思路 我们设f[i][j]为从第i轮抽数之后这些数之和为j的方案数.我们设f[i][j]为从第i轮抽数之后这些数之和为j的方案数.我们设f[i][j]为从第i轮抽数之后这些数之和为j的方案数. 那么f[i][j]=∑k=j−kj+kf[i−1][k]那原创 2020-06-21 16:18:24 · 101 阅读 · 0 评论