您的位置:首页 > 编程语言 > C语言/C++

20171107考试总结

2017-11-07 19:23 253 查看

20171107考试总结

期望得分:290(100+100+90)

实际得分:190(100+70+20)

T1

一切正常。

T2

发现这道题是非常水的。

求树上3个点的平均距离。

第一档n≤100

直接Floyd+枚举即可。

第二档n≤1000

用dfs来计算,然后枚举的时候签字页回合优化即可。

第三档n≤500000

来计算每条边出现的概率。

错误原因:写了这三档切分,然而第一档的Floyd顺序写成了i,j,k导致失去了第一档的分。

然而在考试的时候,把暴力与正解对拍了2个小时都对拍不出来。

这是因为造树的代码无法hack写错的Floyd。

//原来的代码
FOR(i,2,n)ptk(rnd%(i-1)+1),ptk(i),ptn(rnd%100000+1);


//后来的代码
FOR(i,1,n)A[i]=i;
FOR(i,1,n)swap(A[rnd%n+1],A[rnd%+1]);
FOR(i,2,n)ptk(A[rnd%(i-1)+1]),ptk(A[i]),ptn(rnd%100000+1);


由于原来的代码的边都是小的往大的连,相当于一个节点的父亲必定比自己小。

而后来的代码就可以避免这种情况。

T3

其实这道题强模拟加高精就有90分。

然后再退一下就100分了。

然而题目看错了,瞎写。

数据居然仁慈地给了我20分。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言