zoj 3644
有一只喵身上有个记分牌,她每沿着边走一步,记分牌上的数字就会变为,其中表示这一步的终点的一个给定值。问从起点S走到终点T,最后记分牌上写着k的方案有多少种。
dp状态显然和节点号与此时的分值有关,而且分值是k的因子。
dp[i][j]表示到到第i个节点,且变化后分值为k的第j个因子的路数。大分值只会来源于比它小的分值。所以最外层枚举j,里面枚举边就可以更新了。
dp[i][j] = sum(dp[k][h]) // k,i是一条边,j = lcm(h,v[i]);
zoj 3465
这题算是个常规的guass题目,比赛的时候没来的记看。。
已知未知点和12个点的距离,可以得到12个方程,然后讲式子化开,两两做差,就变成了11个11远的线性方程。然后用guass解之。
zoj 3647
问一个网络内点在整点上的非退化三角形的数目。
首先考虑包括三点共线情况,就是求任意不相同三点的种类数。这个就是组合数。考虑共线的三角形。我们发现只要确定两个端点就好,然后更进一步简化,就是枚举向量。然后用gcd求中间整数点个数就可以求解。
有一只喵身上有个记分牌,她每沿着边走一步,记分牌上的数字就会变为,其中表示这一步的终点的一个给定值。问从起点S走到终点T,最后记分牌上写着k的方案有多少种。
dp状态显然和节点号与此时的分值有关,而且分值是k的因子。
dp[i][j]表示到到第i个节点,且变化后分值为k的第j个因子的路数。大分值只会来源于比它小的分值。所以最外层枚举j,里面枚举边就可以更新了。
dp[i][j] = sum(dp[k][h]) // k,i是一条边,j = lcm(h,v[i]);
zoj 3465
这题算是个常规的guass题目,比赛的时候没来的记看。。
已知未知点和12个点的距离,可以得到12个方程,然后讲式子化开,两两做差,就变成了11个11远的线性方程。然后用guass解之。
zoj 3647
问一个网络内点在整点上的非退化三角形的数目。
首先考虑包括三点共线情况,就是求任意不相同三点的种类数。这个就是组合数。考虑共线的三角形。我们发现只要确定两个端点就好,然后更进一步简化,就是枚举向量。然后用gcd求中间整数点个数就可以求解。