CodeForces - 55D && UVALive - 6528

本文解析了两道算法题:一是求L到R区间内能被各非零数位整除的数字数量;二是计算图中到起点存在两条不相交路径的点对数。通过巧妙的DP状态压缩及图遍历技巧给出了解决方案。

A. 问L到R有多少能被自己各个数位上的非零数字整除的数字。

  关键在于dp的状态:注意到这里有三个关键属性:当前数位,2~9出现的情况(0,1不用管),

  原数字取余2520的结果(2~9的最小公倍数),dp即可。

  本题的关键在于应用数论和题目条件压缩dp的状态。

B. 给一从1出发的DAG,问有多少个点对到点1存在两条互不相交的路径。

  队友好厉害:对于每一个记录一下fa[x]。

  1.如果x与1相连,fa[x]=x

  2.如果序号小于x的和其相邻的点fa都相同就将其赋为fa[p],不然fa[x]=x

  3.fa相同的点在一组, 相交。

 

转载于:https://www.cnblogs.com/lawyer/p/6352086.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值