分享

CSP-S 2019 第二轮 Day2 简单解析(含代码)

 长沙7喜 2019-11-18

CSP-S 2019第二轮第二试昨天上午正式结束了,赛后仔细拜读了DAY2的三个题目,难!但也是明年NOI选手不错的试炼机会,高分选手大概率也是明年NOI赛场上的选手。

第一题:Emiya 家今天的饭,比较难的动态规划

第二题:划分,动态规划,高精度,单调队列

第三题:树的重心,dfs序,线段树

以下代码均在oitiku测试,第一题Emiya 家今天的饭,O(n^2m)的算法仅得到84分,超时了4个点,理论上应该是可以通过的:)第二题划分,由于数据太大,写了高精度,写的不是太好,最后三个点在oitiku上MLE了,仅得到88分,之后再来改进:)第三题仅写了一下大致想法,往后再来补代码,终究还是已经老了。

CSP-S 2019 D2T1 Emiya 家今天的饭

思路:容斥,方案计数,对998, 244, 353取余数,已经在预示着这题是动态规划了。先考虑无限制情况下,显然是一个普及组难度的dp问题,然后考虑k/2的限制,我们可以从总的方案中减去不符合k/2限制的方案数即可。

代码如下:

CSP-S 2019 D2T2 划分

思路:根据数据规模显然是要一个O(n)的算法,粗略的就是先贪心,然后典型的序列型动态规划。dp一下n^2,必须使用单调队列优化至O(n)。最后由于数据太大,需要用高精度或者别的取巧的方法优化一下,我们这里使用传统的高精度来写一下:)

CSP-S D2T3 树的重心

思考:

https:///problemset/problem/686/D,恰好比赛前跟同学们也讨论过子树重心的问题。

树的问题的确可以深挖很多有趣的性质,这也是我比较喜欢树上的问题的一些原因。这可能也是为什么树的题目出那么多的原因之一吧。逆向思维一下,如果这点是树的重心,那么一定是删除size最大的子树里面的边。本质dfs序,然后用线段树维护即可。

2019赛季告一段落,高潮已过,停课冲刺的同学们该调整心情回归课堂了,冲刺明年NOI的同学,革命尚未成功,同志仍需努力!

每一位同学都值得为这次CSP-J/S赛写一个总结,心得,感悟,亦或者是回顾自己的学习C++/算法竞赛、OI的历程。

灿烂的明天正在等着你们!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多