CF1572D

news/2025/11/18 19:06:58/文章来源:https://www.cnblogs.com/kentsbk/p/19238981

将每个人视为一个节点,可以一组的人连边

对于连边的两个人,他们的二进制中1的个数差为1,奇偶不同

所以这个图构成一个二分图,转化为二分图最大权匹配

而注意到,每选择一条边,有最多 \(2n-2\)条边不能选了,因此我们只需要保留边权最大的 \(2nk\) 条边即可

然后跑一个费用流即可

#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
int count(int st){int sum=0;while(st)sum+=st&1,st>>=1;return sum;
}
int n,k,a[(1<<20)+5];
struct edge{int v,w,cst,nx;
}e[50005];
int cnt=1,hd[(1<<20)+15];
void add(int u,int v,int w,int c){e[++cnt]=edge{v,w,c,hd[u]};hd[u]=cnt;
}
void add_edge(int u,int v,int w,int c){
//	printf("%d %d %d %d\n",u,v,w,c);add(u,v,w,c);add(v,u,0,-c);
}
int s,t,tot;
priority_queue<pair<int,pii>,vector<pair<int,pii>>,greater<pair<int,pii>>> pq;
vector<int> nec;
int vst[(1<<20)+15];
int flow[(1<<20)+15],dist[(1<<20)+15],pre[(1<<20)+15];
bool vis[(1<<20)+15];
bool spfa(){for(int i:nec)dist[i]=0x3f3f3f3f,flow[i]=0,pre[i]=0;queue<int> q;q.push(s);vis[s]=1;flow[s]=0x3f3f3f3f;dist[s]=0;while(!q.empty()){int u=q.front();q.pop();vis[u]=0;for(int i=hd[u];i;i=e[i].nx){int v=e[i].v;if(dist[v]<=dist[u]+e[i].cst || e[i].w<=0)continue;dist[v]=dist[u]+e[i].cst;flow[v]=min(flow[u],e[i].w);pre[v]=i;if(!vis[v])q.push(v),vis[v]=1;}}return dist[t]!=0x3f3f3f3f;
}
int solve(){int res=0;while(spfa()){res+=flow[t]*dist[t];int u=t;while(u!=s){int id=pre[u];e[id].w-=flow[t];e[id^1].w+=flow[t];u=e[id^1].v;}}return res;
}
int main(){scanf("%d%d",&n,&k);for(int i=0;i<(1<<n);i++)scanf("%d",&a[i]);for(int i=0;i<(1<<n);i++)for(int j=0;j<n;j++)if(i<(i^(1<<j))){pq.push(mp(a[i]+a[i^(1<<j)],mp(i,i^(1<<j))));tot++;if(tot>2*n*k)pq.pop(),tot--;}while(!pq.empty()){int u=pq.top().se.fi,v=pq.top().se.se,w=pq.top().fi;pq.pop();if(count(u)%2==1)swap(u,v);add_edge(u,v,1,-w);vst[u]=1;vst[v]=2;}s=(1<<20);t=(1<<20)+1;for(int i=0;i<(1<<n);i++)if(vst[i]==1)add_edge(t+1,i,1,0),nec.pb(i);else if(vst[i]==2)add_edge(i,t+2,1,0),nec.pb(i);add_edge(s,t+1,k,0);add_edge(t+2,t,k,0);nec.pb(s);nec.pb(t);nec.pb(t+1);nec.pb(t+2);printf("%d\n",-solve());return 0;
}

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

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

相关文章

信息论(七):对数似然比与相对熵(KL散度)

“对数似然比”听起来很复杂,但当你一层层剥开它的面纱,就会发现它其实是由非常简单、非常自然的概念构成的。 “似然比”(likelihood)是比较同一事件的两种说法。假设你对同一个变量 X 有两个不同的概率分布: P(…

纯CSS实现多种背景图案:渐变条纹、蓝图网格、波点与棋盘效果全解析(附 Sass Mixin 封装) - 指南

纯CSS实现多种背景图案:渐变条纹、蓝图网格、波点与棋盘效果全解析(附 Sass Mixin 封装) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

2025年11月中走丝线切割机厂家推荐:深耕高精度/数控/极速中走丝线切割机速精密制造,实力厂家全揭秘!

在制造业精密加工需求持续增长的背景下,丝线切割机作为核心加工装备,成为中小制造企业提升生产效率的关键。江苏莱特斯数控机床有限公司(简称 “莱特斯数控”)深耕该领域,与众多专注细分市场的企业一同,以务实的…

2025年云南/贵州/甘肃/西藏净化板源头厂家优选指南:中空玻镁/岩棉/硫氧镁净化板与洁净板实力厂家盘点!

成都盛宏净化彩钢板有限公司是西南地区专注净化板研发、生产与销售的实力企业,凭借多年行业深耕,已形成成熟的产品体系与服务模式。公司配备标准化生产厂房与先进加工设备,主打岩棉、玻镁、硅岩等多类型净化板,产品…

2025大型/脱硝用/食品厂/一体式/水冷式/臭氧发生器实力榜单:工业用/污水处理设备优选 4 家硬核企业推荐

随着环保需求升级,臭氧发生器在工业治理、污水处理等场景的应用愈发广泛,大型臭氧发生器、工业用臭氧发生器的品质与性价比成为选型核心。以下榜单基于技术实力、生产规模、市场口碑筛选,为采购决策提供参考。 五星…

2025年11月东莞厂房装修服务商推荐:机械加工/仓储物流/恒温恒湿/无尘净化/重型设备厂房装修施工与设计优势!

在产业升级加速的背景下,厂房装修的专业性直接影响生产效率、空间利用率与运营安全性。东莞市作为制造业重镇,优质厂房装修资源备受企业关注。本文基于真实资质、行业口碑与项目经验,精选 3 家靠谱厂房装修公司,其…

2025年11月艺术涂料核心厂家推荐:进口/意大利进口/意大利艺术漆—— 意式艺术与健康科技的融合典范

随着家居消费进入品质升级与审美个性化阶段,进口艺术涂料不再是单纯的墙面装饰材料,更成为承载空间美学与健康生活的双重载体。广东布雷诺新材料有限公司作为深耕进口艺术涂料领域的知名企业,凭借意大利传承工艺与本…

linux bios 设置

在 Linux 系统中,BIOS(基本输入输出系统)并不是 Linux 系统的一部分,而是计算机硬件的一部分。Linux 系统本身并不直接管理或修改 BIOS 设置,而是通过 UEFI(统一可扩展固件接口)来控制硬件行为。 一、Linux 系统…

linux bin解压

在 Linux 系统中,bin 文件通常指的是二进制文件,而不是压缩文件(如 .tar.gz、.zip 等)。如果你是想解压一个 .bin 文件,通常需要先将其转换为可解压的格式(如 .tar、.gz、.zip 等),然后再进行解压。 一、常见 …

2025年11月新疆电线电缆厂家最新推荐,精准检测与稳定性能深度解析!

在全球电力基建升级与新能源产业扩张的双重驱动下,电线电缆的性能稳定性与检测精准度成为衡量企业实力的核心标尺。本次推荐严格参照国际电线电缆协会(ICEA)与国际电工委员会(IEC)2025 年最新测评规范,构建 “精…

2025吉比特-游戏引擎创建-一面复盘

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

2025年11月石墨烯电地暖/石墨烯供热安装品牌公司综合推荐榜单:权威评测与选购指南

2025年石墨烯电地暖行业迎来技术突破与市场扩容,本文基于十大品牌网榜单数据,结合行业技术发展现状,为消费者提供权威选购参考。榜单数据综合考量企业技术实力、市场口碑、服务能力等维度,通过对多家主流企业的深度…

[GESP202406 三级] 寻找倍数

[GESP202406 三级] 寻找倍数B4004 [GESP202406 三级] 寻找倍数 题目描述 小杨有一个包含 $n$ 个正整数的序列 $A=[a_1,a_2,\dots,a_n]$,他想知道是否存在 $i(1\leq i\leq n)$ 使得 $a_i$ 是序列 $A$ 中所有数的倍数。…

2025 年 11 月新疆电线电缆厂家最新推荐,技术实力与市场口碑深度解析!

在全球能源基建加速与新能源产业崛起的背景下,电线电缆的技术可靠性与市场适配性成为项目成败的核心要素。本次推荐依托国际电线电缆协会(ICEA)与国际电工委员会(IEC)2025 年最新测评标准,结合区域特性构建三维评…

SQL进阶必备:从计算字段到多表联结,让查询效率翻倍!

SQL进阶必备:从计算字段到多表联结,让查询效率翻倍!一、创建计算字段:让数据“按需重组” 存储在数据库中的原始数据,往往不符合直接使用的格式(比如分散在多列的信息、需要计算的数值),这时候“计算字段”就能…

【Docker】[特殊字符] Docker 部署完全指南 - 从本地开发到云服务器 - 指南

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

Day42(12)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project02\tlias-web-management

每次重启之后都得重启一下nginx 启动监听Mybatis 新增参数package com.itheima.controller;import com.itheima.mapper.DeptMapper; import com.itheima.pojo.Dept; import com.itheima.pojo.Result; import com.ithei…

C# 中容易出错的问题

C# 中容易出错的问题 数据结构使用 列表转字典 列表转字典时需要注意先给列表分组,然后按照分组转字典。这是因为转字典时遇到重复的键会抛异常。 var conversionDict = conversions.GroupBy(x => x.a).ToDiction…

详细介绍:Next.JS环境搭建,对接Rust的RESTful API

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

P14510 夜里亦始终想念着你 miss 题解

验题人题解。 观察所有 \(\tt 0\) 的位置,容易发现 \(\forall i\),从左到右第 \(i\) 个 \(\tt 0\) 所在位置的奇偶性是固定的。且任意一个这样的棋盘都能通过题面中的操作得到。 考察操作的可逆性,容易想到令每个 \…