浏览器标题切换
浏览器标题切换end
把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

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

posted @ 2019-02-03 15:27  henry_y  阅读(201)  评论(0编辑  收藏  举报