GDOI2018D2T1 谈笑风生
T1 谈笑风生
【题目描述】
【输入】
【输出】
一行两个数,所需能量P与在能量最小的前提下最短的到达时间t。
【样例输入】
5 7 66
4 3 2 1 5
1 2
1 5
2 3
2 4
2 5
3 4
3 5
【样例输出】
6 64
【数据范围限制】
【样例解释】
从城市1出发,花费6单位能量,依次经过2、4、3、到达首都5,花费32+3+0+29=64秒
Solution
边权计算规则
\[w=\sum_{i=1}^{num[u]}\sum_{j=1}^{num[v]}(i+j)[(i,j)=1]
\]
\[\begin{aligned}
&设sum(n,m)=\sum_{i=1}^{n}\sum_{j=1}^{m}(i+j)\\
w&=\sum_{i=1}^{num[u]}\sum_{j=1}^{num[v]}(i+j)[(i,j)=1]\\
&=\sum_{i=1}^{num[u]}\sum_{j=1}^{num[v]}(i+j)\sum_{k|(i,j)}\mu(k)\\
&=\sum_{k=1}^{min(num[u],num[v])}k\mu(k) \sum_{i=1}^{\lfloor\frac{num[u]}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{num[v]}{k}\rfloor}(i+j)\\
&=\sum_{k=1}^{min(num[u],num[v])}k*\mu(k)*sum(\lfloor\frac{num[u]}{k}\rfloor,\lfloor\frac{num[v]}{k}\rfloor)
\end{aligned}
\]
易得
\[\begin{aligned}
sum(n,m)&=\sum_{i=1}^{n}\sum_{j=1}^{m}(i+j)\\
&=\frac{nm(n+m+2)}{2}
\end{aligned}
\]
所以可以\(m\sqrt{max(num[i])}\)的计算出每条边的边权
然后二分答案+spfa计算即可。
因为JZOJ不开放注册。。。所以就没办法交了,口胡一波,题面还是网上找来的。。。
不过思路是对的。好像GDOI2018我也就两道T1会写T_T