洛谷 P4068 [SDOI2016]数字配对

两种建图方法:
1、每种数拆点 ai,ai a i , a i ′ ,然后 O(n2) O ( n 2 ) 暴力求出可以匹配的 ai,aj a i , a j ,连边 (ai,aj,INF,c[i]c[j]) ( a i , a j ′ , I N F , c [ i ] ∗ c [ j ] ) (ai,aj,INF,c[i]c[j]) ( a i ′ , a j , I N F , c [ i ] ∗ c [ j ] ) ,然后连每个 (S,ai,b[i],0) ( S , a i , b [ i ] , 0 ) (ai,T,b[i],0) ( a i ′ , T , b [ i ] , 0 ) 。建出的图是对称的,所以最终答案除以2即可。
2、观察配对的条件。设 ai>aj a i > a j ai a i aj a j 配对等价于 ai=ajp a i = a j ∗ p p p 为质数。因此我们将ai aj a j 分解质因子后就可发现,这一条件等价于质因子质数和 cnti=cntj+1 c n t i = c n t j + 1 。所以我们把 ai a i cnti c n t i 的奇偶性分开,这就是一个二分图了,连边类似方法1。

不管哪种方法建图,我们最后都要跑最大费用流。但是存在限制:费用不小于0。这里需要用到贪心的思想:每次沿最长路增广,如果当前最长路即使只流1的流量都会使费用小于0,停止增广。

总结:
1、通过拆点,建有对称性的图,最后答案除以2的方法可以满足一些流量对称性的要求。(本题要求边 (S,ai) ( S , a i ) (ai,T) ( a i ′ , T ) 流量相等)
2、用贪心思想满足费用流的费用限制。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值