您的位置:首页 > 其它

2016.12.30【初中部 GDKOI】模拟赛B组

2017-01-03 18:57 190 查看
总结:

这次比赛做的比较差,没有发挥出应有的水平,像第一题这种可以称之为“一眼题”的题目,竟然一分没拿,找找原因,发现还是比赛时不够认真,坐标说了全部>0,为什么还考虑负数?题目提醒了数据的范围,为什么不改int64,这些毛病都是不容犯的,但还是犯了,哎~

但像T2这种典型的树形DP题,还要什么逆元之类的,能水个暴力就行了,不必太过要求高。

第3题更不用说(什么LCT,什么鬼嘛)

而第四题,在考试的时候还是有可能可以做出来的,没有尽力~

下面写下题解..

题解:

T1:

·不用说了,一眼题,优先队列维护即可

T2:

·显然Dp

·f(i)=f(i.left)*(fi.right)*c(i-1,i.lefttot);

·i.left表示i的左节点,i.right表示i的右节点,lefttot表示左子树的节点数,i-1表示i这棵树总共有多少个除根外的节点

·之后会发现time over,原因是求c的效率太低

·因为模运算是不兹瓷除法的,当然我们可以把要乘和除的数先分解一下质因数,然后抵消掉再摸,这样可以解决精度问题,加上记忆化之后大概可以拿到80分

·考虑优化C

·可以用逆元

·why does the 逆元 can do it?

·逆元之所以can do it,是在于它不仅解决了精度问题,而且非常快——把除法转化为了乘法

·举个例:(a/b) mod c=x,则x=(a*N(b,c)) mod c 

·N(b,c)表示b与c的逆元

·N(b,c)=(b^(c-2)) mod c

·证:

·因为 (b^(c-1) mod c) 恒等于 1(费马小定理,前提:c为质数),所以,((b^(c-2)) mod c)=1/b

·之后将C的数值带进计算即可

T3:

·普通的克鲁斯卡尔60分

·可以用水法

·扫到一条边后发现图被连通了,则从这条边往回扫,扫到刚好再一次连通时,下次便从这条边的下一条边继续往下扫,以此类推

·优化的正确性显然

T4:

·考虑最优性

·题目要求字典序最优,也就是每个格能放得数尽量小,则我们从最小的数开始枚举,枚举每一个格,如果当前放的格在我们可以拓展的正方形的第一行,我们就看看能不能拓展,如果不是在一个正方形的第一行,无需考虑拓展

·随后,对于每一个格,不能与之上下左右重复,并满足最优,以此类推即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: