这周做了十三道并查集的题,十篇左右的资料。
反思:
每天都熬夜,少数补作业,多数在玩。导致上午的课,包括算法课在内都睡过去了。课上拉下了,晚上就要拿时间去补,恶性循环。
好在中午能看几道题,晚上都在补之前落下的课。
对比同年级的,感觉他们学东西都好快。他们做一件事情,是能一直做下去的。而我总是容易拖,不到最后不去搏。
算法:
感觉并查集比搜索要简单点,可能是我现在接触的题太少了。
并查集开始学习的时候,老师还没给资料。
我按照之前搜索的学习过程,在洛谷上搜索了并查集的题型,看了一道经典题,看不懂,然后看了题解,理解的差不多了,后来去书上找。然后就算是充分了解了。
后来在看题的时候,刻意的去把题目去分类,然后找一尽可能通用的模板,去配合题。模板不适合就再去想为什么不适合,在什么时候不合适,该怎么去改模板。不断完善总结。
并查集题型:
1. 并查集判断集合个数
在合并时,累加
又分为有代价和没有代价的情况:
有代价又分为:
代价最小,也就是小于等于最终的代价的最小值无限加
先排序,然后在合并时,从小到大一次累加。
P1111 修复公路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1111
合并(达到效果)才加代价:
排序,如果可以合并,就加入代价,否则不加。
P1195 口袋的天空 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
2. 判断环。
两个点的祖先已经相同,再合并便形成环了。
2492 -- A Bug's Life (poj.org)http://poj.org/problem?id=24923. 每个集合里有多少个元素
4. 判断是否是连通器
P1656 炸铁路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1656
上一周还在怕这科万一不及格了怎么办,现在觉得还行。至少让我学会了怎么去学习算法,怎么自己去学习去找资料去总结。
cf比赛总结:
就做了一个题。没有那个思维,该练。