营救
1 |
|
觉得这道题就是一道裸的最小生成树题,将边排序,从小到大加边直到s和t在同一个集合内。
小D的地下温泉
1 |
|
题解;
个人认为这道题是最恶心的,想出正解后,调代码用了快两个小时qwq.
首先,把每一个联通快当成一个点,记录个数(cnt)。对于操作二,分情况讨论,若是温泉,该联通块大小减一,若不是温泉,查找四周温泉,进行合并。
炸
(destroy.pas/c/cpp)
【问题描述】
有n个星球,这些星球被m个双向通行的传送通道连接,传送依次需要的时间为1
现在坏人占领了这些星球,想要切断其中的联系,于是坏人决定把一些通道炸掉
但是坏人为了对付好人,还要进行军队运输和物资运输,于是坏人想知道,在保证从星球s1到星球t1所需时间不超过l1,从s2到t2不超过l2的情况下,最多能炸几座桥
【输入】
一行两个空格隔开的整数n,m,城市从1到n编号
接下来m行,每行两个空格隔开的整数l,r,保证两个星球中最多只有一条路
最后两个每行三个空格隔开的整数,分别表示s1,y1,l1和s2,y2,l2
【输出】
一行一个整数表示你的答案
如果无解输出-1
【输入输出样例1】
5 4
1 2
2 3
3 4
4 5
1 3 2
2 4 2
1
【数据范围】
20% n,m<=15
20% m=n-1
20% s1=s2,t1=t2
20% s1=s2
100% 1<=n,m<=3000,1<=u,v<=n,u!=v,1<=s1,s2,t1,t2<=n,0<=li<=n
1 |
|
题tu解cao
这道题用两遍最短路可得65分的好成绩,然而这并不是正解,我一开始以为只能得40分部分分qwq.
因为所有的边长都为1,并且1<=n,m<=3000,所以可以用bfs和数组算出每两个点之间的距离。然后枚举两条边之间的公共部分更新答案。
本文作者:
syrsteven
最后更新: 2023年09月02日 04:06:21
本文链接: http://syrsteven.github.io/post/5402392a.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!
最后更新: 2023年09月02日 04:06:21
本文链接: http://syrsteven.github.io/post/5402392a.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!