CodeForces - 55D && UVALive - 6528

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相同的点在一组, 相交。

 

posted @ 2017-01-26 21:25  lawyer'  阅读(140)  评论(0编辑  收藏  举报