找唯一特征去重转移DP——CF1210F2 Marek and Matching

news/2025/11/12 22:24:31/文章来源:https://www.cnblogs.com/lupengheyyds/p/19215681

找唯一特征值去重转移DP——CF1210F2 Marek and Matching

匹配肯定利用霍尔定理,先写出:\(\forall S,|S|-|G(S)|\le 0\)

图论计数往往考虑容斥,设 \(f_{S,T}\) 表示对于二分图 \((S,T)\),出现大小为 \(|S|\) 的匹配的概率,首先是 \(mat(S,T)\) 表示 \(G(S)\ge S\) 的方案数。然后想怎么减去,考虑怎么用一个信息代表一类不合法的情况。

这里考虑找出使得 \(|S|-|G(S)|\) 最大 \(S\) 来代表,若有多个则取 \(|S|\) 最小的,可以证明对于任意的无完美匹配的图, \(S\) 是唯一的,于是这样就用 \((S,T=G(S))\) 代表了一类无完美匹配的图,设方案数为 \(g_{S,T}\)。这里 \((S,T)\) 就是一个不合法图的“特征值”。

\(N(S,T)\) 表示 \(S,T\) 之间没有边的概率。

根据意义得到转移:

\[f_{S,T}=mat(S,T)-\sum_{S'\subseteq S,T'\subseteq T,S'\ne \emptyset}g_{S',T'}f_{S\setminus S',T\setminus T'}N(S',T\setminus T') \]

然后考虑转移 \(g_{S,T}\),根据意义我们要求 \((S,T)\) 是二分图 \((S,T)\) 的特征值,所以 \(G(S)=T\),设 \(smat(S,T)\)\(mat(S,T)\) 的所有情况中 \(G(S)=T\) 的。

\[g_{S,T}=smat(S,T)-\sum_{S'\subseteq S,T'\subseteq T,S'\ne S,|S'|-|T'|\ge |S|-|T|}g_{S',T'}h_{S\setminus S',T\setminus T'}N(S',T\setminus T') \]

为了满足 \(G(S)=T\) 这里 \(h_{S,T}\) 表示 \(f_{S,T}\) 中所有满足 \(G(S)=T\) 的。于是得到 \(h\) 的转移式:

\[h_{S,T}=smat(S,T)-\sum_{S'\subseteq S,T'\subseteq T,S'\ne \emptyset}g_{S',T'}h_{S\setminus S',T\setminus T'}N(S',T\setminus T') \]

发现 \(h_{U,U}\) 也为答案,所以没必要使用 \(f\) 了。

最后:

\[smat(S,T)=\sum_{T'\subseteq T}(-1)^{|T'|}N(S,T') \]

作者赞语:

一种方案中,当满足某个易于DP的条件的元素只有一个时,这个元素就叫做特征值。

对所有特征值计数即实现对所有方案不重不漏考虑。

所以去重的方法有:

  1. 容斥

  2. 特征值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/963828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UEFI Boot Manager

简介 UEFI boot manager是一个固件方针引擎,它可以通过修改global NVRAM 变量来配置;它会按照global NVRAM variable 定义的顺序来加载UEFI driver or UEFI application。当固件初始化完成,就会把控制权交给boot ma…

25年11月计数题做题记录

AGC073C 因为实数不好处理所以我们考虑将实数映射到整数上去做,相当于我们把值域在 \([-(n-1),1]\) 之间的实数映射到 \([-(n-1)m,m]\) 之间的整数上,其中 \(m\rightarrow\infty\),现在我们需要考虑的就是值域在 \(…

固体废物资源化处理简答题与论述题

固体废物处理核心内容简答题与论述题(含解说) 一、简答题(侧重基础概念与关键参数) 1. 简答题1:固体废物分类及“三化”“3R”原则分别是什么?答案:分类:工业固体废物、城市固体废物、农业固体废物、危险废物、…

详细介绍:Python基础语法与数据类型详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

noip6 多校1

11.1211.12 t1 \(O(nm^2)\)是简单的。 发挥人类智慧发现每次最优只在前面较少的状态。 于是可过。 其实人类智慧有证明的。 考虑若最大值越大,则选的次数越小,反之亦然。 平均一下就过了。 codet1 #include <bits…

CCPC2025哈尔滨站-H. 匹配

时停问题,考虑势能函数。设单个集合的势能函数为 \(f(x)\),其中 \(x\) 为集合大小,这是合法的。总的势能 \(\Phi = \sum\limits_{s\in S} f(|s|)\).考虑列出方程解出 \(f\)。 满足鞅的时停定理的势能 \(\Phi\) 满足…

通过开发环境部署工具安装qt相关c++开发环境

通过开发环境部署工具安装qt相关c++开发环境

第23天(简单题中等题 二分查找)

打卡第二十三天 1道简单题+2道中等题题目: 两数之和思路一: 双指针,题目说数组下标从1开始,先初始指针还是从0开始,返回时左右指针都加1就行 代码: class Solution { public:vector<int> twoSum(vector<int&g…

Cinema4D 2025保姆级下载安装教程|含安装包获取+新手入门指南

目录一、Cinema4D 2025 核心功能亮点二、Cinema4D 2025 正规下载渠道1.Cinema4D 2025 下载(推荐)2.其他下载注意事项三、Cinema4D 2025 详细安装激活步骤(Windows 系统)步骤 1:解压安装包(提前关闭杀毒软件)步骤…

CF2101D

给定一个长度为 \(n\) 的排列 \(a\),问其有多少个子串 \(b\),使得 \(LIS(b) + LDS(b) = |b| + 1\) \(n \le 2 \times 10^5\)考虑一下题目给的条件在说啥,其实就是每个元素都在 \(LIS/LDS\) 中,只有一个相交的地方(…

【做题记录】HZOJ 多校-数论

B. [POI2011] SEJ-Strongbox 2025noip模拟赛73 BCode #include<bits/stdc++.h> #define int long long #define il inline #define pb push_back using namespace std; namespace asbt{ const int maxn=2.5e5+5;…

2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N

题目简介题意:对于任意十进制整数 \(X\),定义 \(F[X]^\dagger\) 表示其循环左移一位所得到的数。给定非负整数 \(N\),求所有满足等式 \(X+F[X]=N\) 的 \(X\) 的个数。 \(\dagger\) 循环左移:设 \(X=a_0a_1\cdots a…

洛谷 P4859 已经没有什么好害怕的了 题解(DP,二项式反演)

给两个长为 \(n\) 的数组 \(a, b,\) 求将 \(a_i, b_j\) 两两匹配使得 \(a_i > b_j\) 的数量比 \(a_i < b_j\) 的数量多 \(k\)。数字不重复, \(k \le n \le 2000\)。注意到,其实 \(a_i>b_j\) 和 \(a_i<b_j…

01321:棋盘问题

|DFS|回溯| 难点1:DFS,对于dfs(h,t)表示的“即将在第h行进行摆放,已摆放的棋子数为t个”,即如何在dfs函数内部进行递归:若该棋可以放在第h行的第i个位置(标注take[i]=true),则对改行以下行中所有可行的点进行递归…

飞鱼uu单人防空4

飞鱼uu单人防空4盖亚特买40个-->超级防空100-->超级磁能40-->磁能巨无霸20.剩下的随便买.一直造坦克碉堡

C 变量的作用域与生存周期

弄清楚变量的作用域和生存周期,能够让我们不至于犯低级错误; 局部变量 在初学C语言变量的时候,我们通常将变量写在main函数内; 在函数内部,或者{}块内部的变量称为局部变量;它有以下特点:系统不会帮忙初始化,需…

模式识别与机器学习课程笔记(11):深度学习 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订)

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订) 📌 使用说明 时间复杂度:O(1)=常数级(快),O(n)=线性级(随数据量增长),O(k)=取决于传入可迭代对象长度 🔴 字符串(str)为不可变类型,所有&…

05.创建型 - 简单工厂模式(Simple Factory Pattern)

简单工厂模式(Simple Factory Pattern) 定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。 适用场景:(1)需要创建的对象较少。(2)客户端不关心对象的创建过程。例: 你需要一辆…

RabbitMQ延迟队列rabbitmq_delayed_message_exchange

访问:https://www.rabbitmq.com/community-plugins.html 下载rabbitmq_delayed_message_exchange插件,然后将插件文件(rabbitmq_delayed_message_exchange-4.0.2.ez)放置到RabbitMQ的插件目录(/usr/lib/rabbitmq/…