摘要: 设答案为r,cnt为x[i] >=0的个数 那么r = 1/n * (Σx[i](x[i] >= 0) + ∑(r - x[i])(x[i] < 0)) 然后把r移项到一起解方程, 得到r = ∑|x[i]| / cnt,同除gcd。记得特判下x[i]均为负数的情况即可。 阅读全文
posted @ 2019-08-25 23:49 IAT14 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 至少得知道floyd的最初形式,dp[k][i][j],只经过前k个点,i到j的最短路。 所以题目就是问你,任意两点间的最短路,经过的最大编号的点最小是多少,还不含两个端点。 魔改一下dijkstra就行了,每个点跑一次。先比较长度,长度相同比较下最大编号谁的更小。每个点存的经过最大编号并不包含这个 阅读全文
posted @ 2019-08-25 16:23 IAT14 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 跟最短路没什么关系,从起点直接走终点显然最优。 阅读全文
posted @ 2019-08-25 15:02 IAT14 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 第一题结合莫比乌斯函数定义,值恒为1。 第二题,phi(i^2) = phi(i) * i,根据欧拉函数的定义式能推出来,每个质因子的指数都增加一倍,都提出来一份,就是原先的phi(i)*i。然后还是跟g(x)卷一下,杜教筛即可。 阅读全文
posted @ 2019-08-25 14:53 IAT14 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 打表观察得到,gcd(i,j)==1时,gcd(i^a−j^a,i^b−j^b)的值为i - j。所以,你发现这个题跟ab就没关系了... 变成去求∑∑(i-j)[gcd(i,j) == 1]了。有一个显然的结论,gcd(i,j) == gcd(i-j,i)。 设k为i-j,则变成 ∑(i 1->n 阅读全文
posted @ 2019-08-25 14:35 IAT14 阅读(97) 评论(0) 推荐(0) 编辑