一道不知道哪里来的网络流题

本文探讨了一种算法问题,即给定n个数字和m种操作,如何通过使两个数同时除以它们的公约数来最大化匹配数。文章介绍了两种情况的解决方法:一种是保证操作中数字的奇偶性不同,另一种是不考虑奇偶性限制的强化版。通过分解质因数和使用Dinic算法,以及袁神提出的一种高效解法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给出n个数字,给出m种操作。
每个操作形如:可以使第x个数和y个数同时除以一个不为1的公约数,从而使得匹配数+1。
求最大可能的匹配数。
(n<=100,m<=100,wi<=1e9)

弱化版:保证x,y奇偶性不同。

这是个傻逼题。
首先奇数下标,偶数下标各放一侧。
直接分解质因数。连边时两侧对应质因子连边,跑一下dinic即可。

强化版:不保证上述性质。

袁神给了个很强的做法。
把所有点都在两侧摆一遍,和刚才同样的做法,求出来后maxflow/2即为答案,证明显然。

转载于:https://www.cnblogs.com/Creed-qwq/p/10117294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值