题意
给一个 个点 条边的无向图,要求对每个点赋权值为 或 ,每条边的边权为其两个端点权值和。
一种赋权方案合法当且仅当边权为 ,边权为 ,边权为 的边均存在。求合法的方案数。
题解
特判 。
把所有未连边的点删掉,它们可以任意取,若有 个这样的点,答案乘上 即可,以下的 即 。
容斥一下,令 表示保证 中的边权不存在的方案,则 ,依次处理即可。
发现不同连通块应该分开考虑,记 为连通块个数。
:显然 。
:整道题的核心。即不存在某条边两端点权均为 。
可以直接 判断,现在是 ,启发我们 meet-in-the-middle。
个点划分为两个点集,将前 个点暴力枚举出 种情况,判断前 个点内部的边是否合法,令 表示前 个点钦定选 的点集为 是否合法,若合法则 ,否则 。
后 个点同样枚举 种情况并判断后 个点内部的边是否合法,若合法,则考虑连接两个点集的边,在前 个点中会有若干个点被钦定不能选 ,设这些点组成的集合为 ,则这种情况对应前 个点的方案数有 ,对 做子集求和,FWT 即可。
:即不存在某条边两端点权不同,所以一个连通块内每个点权值相等,故 。
:与 对称。
:即不存在权值为 的点,只能全部赋 ,。
:即不存在某条边两端点权相同,判断每个连通块是否是二分图即可,每个二分图左右部点互换是 种方案。若每个连通块都是二分图,则 ,否则 。
:与 对称。
:显然 。
令 ,时间复杂度为 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话