2018年8月15日训练日记

HDU 5723 Abandoned country(并查集+思维)题意:给你n个顶点和m条边,求出他的最小生成树的值(树是唯一的),同时求出两两节点之间距离的数学期望。思路:先用kruskal算法求出最小生成树,然后把树上的边加入图中。进行一次dfs。若此时遍历的子树总结点为sumv,这条边权值为w,则sum+=w*(n-sumv)*sumv。最后除C(n,2)即可。

今天多校的比赛打得不好。全队的罚时依然是我一个人所贡献。。。

一道暴力模拟WA了一发。

启示:遇到这种数据范围很小的直接枚举更省时间,花时间想坐标怎么变换反而更浪费时间,准确率还不高。而且一定要静下心来。

一道模拟+暴力+二分优化WA了4次。原因是枚举时有一种情况要从a数组找元素,但是想当然的用了lower_bound,多亏了热心小伙伴lml提醒,不然可能最后都过不了。

启示:遇到这种题目虽然n,q都很大,但是只要尽可能保证基本所有的情况都在复杂度范围以内,只有小概率极端情况暴力处理,就可以大胆尝试了。赛后我的“暴力”代码效率排行第二,足以说明我判断的正确性。然后就是思路必须清晰,lower_bound一定要牢记数组有序的时候才可以用,已经不是第一次犯这个错误了。。。长点记性。。。

一道构造题,最后也没想出来怎么构造。赛后看了题解的代码直呼神奇。。。(但是比赛的时候过了接近300个队伍)

启示:遇到构造性的题目已经很多次了。盲目构造是99%行不通的。像今天这道题。n,m都是偶数时,我只是单考虑4*4、4*6、6*6的情况,却没有从n或m=2,n或m=4,n或m>=6来考虑。所以这种题目不要瞎猜,要从小到大有规律的依次枚举n,m,确定一个n看另一个m变化有什么规律,这样才会渐渐找到规律,光想凭空构造是不可能的。

还有半个月的时间,再努力一把,争取基础知识再扎实一些,视野再宽广一些,思维再灵活一些。

猜你喜欢

转载自blog.csdn.net/LSD20164388/article/details/81711517