7-11 奥运排行榜 (25 分)
这个要考虑到并列排名:
while(j>0&&qq[j].gp==qq[j-1].gp) --j;
有可能在结构体排序的时候会出现不稳定排序,那么:
if(a.gp==gp) return a.no>no;
return a.gp<gp;
7-13 畅通工程之最低成本建设问题
之前的并查集算法忘记了正确写法,以为是两个点同时开始找然后修改其中一方。
实际上是先两个点各自溯源更正查询,再进行归并的。
int sanda(int a)
{
return a==f[a]?a:f[a]=sanda(f[a]);
}
void mer(int x,int y)
{
int fx=sanda(x);
int fy=sanda(y);
f[fy]=fx;
}
7-10 城市间紧急救援
这题的问题出在有几条最短路径,我一开始觉得最短路径上面经过几条路。因为他说最优解是唯一的哇……
从补题结果来看,他的最短路径是只针对长度,不针对救援队数量。
7-8 龟兔赛跑
首先 兔子是要跑了才会回头看的——尤其是在分钟数是十的倍数的情况下
然后按照自己的思路,睡觉之后时光是跃迁到30分钟后的第31分钟的
当然我觉得有个地方很狗血 如果“穿越”的时间(极端一点)刚好是整点,兔子又刚好还是在前面,那岂不是只跑了一分钟吗?
而他要求是每跑10分钟……