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]
]
[egin{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])}kmu(k) sum_{i=1}^{lfloorfrac{num[u]}{k}
floor}sum_{j=1}^{lfloorfrac{num[v]}{k}
floor}(i+j)\
&=sum_{k=1}^{min(num[u],num[v])}k*mu(k)*sum(lfloorfrac{num[u]}{k}
floor,lfloorfrac{num[v]}{k}
floor)
end{aligned}
]
易得
[egin{aligned}
sum(n,m)&=sum_{i=1}^{n}sum_{j=1}^{m}(i+j)\
&=frac{nm(n+m+2)}{2}
end{aligned}
]
所以可以(msqrt{max(num[i])})的计算出每条边的边权
然后二分答案+spfa计算即可。
因为JZOJ不开放注册。。。所以就没办法交了,口胡一波,题面还是网上找来的。。。
不过思路是对的。好像GDOI2018我也就两道T1会写T_T