/*51 nod 1610 路径计数(Moblus+dp)problem:路径上所有边权的最大公约数定义为一条路径的值。给定一个有向无环图。T次修改操作,每次修改一条边的边权,每次修改后输出有向无环图上路径的值为1的路径数量(对1,000,000,007取模)。solve:感觉直接在图上求GCD的话很麻烦,而且还涉及到修改.后来发现可以考虑通过容斥来求GCD,这样的话就转换成了图上面长度为i的路径的个数.开始时记录路径长度w[i]以及它的约数. (w[i] = 4的话, 可以看成有 1,2,4三条边)于是通过枚举gcd便能够在 100*n*n内求出来所有路径值的情况.在修改的时候,可以发现只会 影响被移除的数和添加的数以及它们的约数. 处理一下然后通过moblus实现容斥就能求出gcd = 1的情况.hhh-2016/09/09-20:59:44*/#pragma comment(linker,"/STACK:124000000,124000000")#include #include #include #include #include #include #include #include #include #include