第一题:二叉树的根
分析:这题的算法又是赤裸裸= =对于一棵二叉树,根节点的度数小于三,子节点的度数小于等于三。我们可以记录每个点的度数,若有度数大于3的点无解,之后我们记录度数小于三的点即可以作为根节点的点。
第二题:距离统计
分析:有一结论:对于正整数x,y,z若x^2+y^2=z^2且gcd(x,y,z)=1时z-x为完全平方数或完全平方数的两倍。现对于一个询问i,我们可以枚举i的所有约数作为z,枚举z-x,因z-x为完全平方数或其两倍我们的z-x只要枚举到z的开方,再判断这一组x,y,z是否合法。便可以算出线段为对角线时的数量。再加上横竖的数量即可。
第三题:电阻网络
分析:根据电路的解释,我们可以将电路分为三类。1:出度为2即并联电路开始 2:出度为1且出边边权为0即通向并联电路的结束点 3:出度为1且出边边权为1即一个阻值为1的电阻。很明显每个点出度至多为2(大于2题目错了= =)这样存储就很容易了。。。我们扫一遍电路当电路为并联时我们进入递归计算出这一段的并联电路的电阻(并联电路计算方式:R1*R2/R1+R2)并记录下并联电路结束的位置,从结束的位置继续向下做,为串联电路时时加上当前电阻阻值继续向后做。
我觉得第一题没什么好说的,没有丢掉应得的分数,打完后拍手写小数据和特殊数据、极限数据,也读了几遍程序,这种严谨性在做任何比赛和练习都需要有
第二题利用了枚举i,j求出勾股数虽然T了也是得到了应有分数,尽了最大的努力。。。(但是当时却没有想到直接枚举其中一条直角边的值,太紧张了吧= =)
第三题觉得还是对题目分析不够,参杂了许多真实物理的想法,就在想会不会短路之类的,结果越想越复杂就水了20分。分析题目时应该抛开与题目无关的东西,丢弃一些原本的不符合题意的认知。如果分析好了题目,估计就能切掉了