题意

给定一个长为$n$的数组,以及$m$对下标为$(a,b)$的点对,且满足下标a+b为奇数(即奇数点只与偶数点匹配),每次操作可以将同一组的两个数同时除以一个公约数,问最多能进行多少次操作。

解法

显然题目所给的是一个二分图。

对于每个质因数分开考虑。对于奇数点,向源点连接一个容量为该因子个数的边;对于偶数点,则向汇点建立一个容量为因子数的边;对于有边相连的点对,建立容量为$inf$的边。

对于题给的数组$a[i]$,通过分解质因数的方式计算每个质因数所建图的最大流,求和即为所求解。

代码

原文:大专栏  「CodeForces-498C」Array and Operations(数论+网络流)


01-23 00:24