本文共 2510 字,大约阅读时间需要 8 分钟。
其实前面写过一次并查集了......乱七八糟的,其实那个方法不太好,也不够简洁= -只是帮助了理解...
其实看这个就很好......https://blog.csdn.net/u013596211/article/details/44599325
一个初始化函数init
一个查找函数,很简单!
或者是
一个combine函数,也很简单!
查找的时候只要
就可以了!.....多么简单啊..
【划重点】但是我交的那个题写错了
【while (r != pre[r])
r = pre[r];】
这里!!!!!是pre[r]的值给了r才得以循环下去
是pre[r]的值给了r才得以循环下去
是pre[r]的值给了r才得以循环下去....
https://blog.csdn.net/strongerirene/article/details/79277064这个是帮助理解用的吧...之前写的,其实完全不用这样的....
以及CCCC里面有个图书馆(?)
map
可以有clear()删除所有还有conut()制定次数empty(),erase()删除制定 find()查找4...... 图书馆这个题啊算法是让你干嘛的(1)时间可以简化!int gettime() { int u, v; scanf_s("%d:%d", &u, &v);//也没错,真的能省去不少 return u * 60 + v;}if (v[0] == 'S') h[u] = w; if (u == 0) break; if (v[0] == 'E'&&h.count(u)) { m++; sum += w - h[u]; h.erase(u); } }(3)scanf("%d:%d", &u, &v);真的会简化很多!!也不需要多测试(4)反正记一下吧!!自己实现的真麻烦啊有需要关联的,但是需要记录的东西并没那么多并且只记录一下序号和时间别的拐拐就拐到了!(5)使用map因为是容器一下子就简化下来了,clear一下一刀切了下去简直完美还要稍微考虑一下h.earse(u)因为可以借阅很多次(6)n--这个东西有三组数据,但是读入多少不确定【这个时候需要写在while(1)里面啊!】不然n=3只读了三次就没了,要break出来才好!!还是给个地址...https://pintia.cn/problem-sets/972375971370434560/problems/972376204301107202
然后是标程,...
有关map在这里https://blog.csdn.net/shuzfan/article/details/53115922
可以使用[ ]进行单个插入
啊.....好像有点像前面是索引,后面藏了个大花姑娘(雾)就是后面的时间啦
这写的真好啊....省掉了很多不必要的麻烦,并且很熟练
#include#include
核心.... 读入的时候 时间的设定(记)
h[u]=w/ if (h.count[u])///***这里用点 "."访问
m++;sum+=w-h[u];(其实就是w)
h.earse() (最开始当然是clear 快了不止几倍啊)
小数点啥的是在干啥待补充......
这怎么都不想更博客了.....orx...
联想到校赛里面那个题栗酱字符串,其实有的完全可以直接用string自己带排序的就解决了.....
多想一想......有的信息其实用不上的,稍微化简一下,保持头脑清醒....