模拟赛总结

第一天的模拟赛第一题看着不会做只能拿部分分,就去看第二题了,看完第二题之后发现这道题以前见过,然后最后就对了。第三题,看完题之后觉得每种颜色的积木数量很多觉得不可做,而且30%的部分分要枚举每一层是什么、以及判断相邻两层是否可以满足联通条件,最后dp求一下方案数……比赛的时候我觉得挺复杂的,但是有10分是n=2的,这个我就直接手玩了。第四题,我想到他一定是先将原字符串转成需要的字符串,剩余的操作就查找放在哪一个字符上。接着我就往求组合数这方面想的。其实是给定一个步数范围,接着矩阵乘法,这样避免了组合数。我在打第一题的时候发现,在最优解中,放置的地方一定是转角位,这样我就加了一个优化,以为可以多拿点分,然而并没有。比赛的时候,能优化而暴力尽量优化,也许就会多一点分。
第二天,看完第一题,觉得可以拿两个部分的分,但是仔细思考了一下,发现是错的,只能拿30。这道题是树上莫队,按dfs序莫队就行了。第二题和之前做过的一道网络流的题目很像,求是否存在唯一割,但是我用之前的方法做是错的。第三题,是一道游戏题,没什么头绪,根本没想构造一个自动机什么的,就打了一个暴力。读题的时候一定要认真,每一个数据范围都要仔细思考,免得影响自己的判断。
第三天,第一题,读完题之后发现5%数据是送的,接着我发现又有30%的数据可以用网络流,但是我自己尝试构图十几分钟之后还没有构造出来,就放弃了。第二题,原本觉得边界很大,暴力都打不了,我直接把范围min一个500,这样就可以了。第三题,我是这样想的,先n^3求出所有珠子的方案,接着求一个合法的序列种数,再/n,但是最后并不可以直接/n,因为如果项链中有循环节的话,就会多减了。最后我这道题爆0了。第四题,看完之后觉得前30分都可以拿,但是,我打了30多分钟,程序删了又写删了又写,最后发现时间已经所剩无几,就去打第一题去了。在比赛中有想法之后要判断是否正确,而且最重要的是,要判断这种方法是否容易实现,如果想法简单,实现困难不如换成一个想法稍微困难,但实现简单的程序。思维和程序实现能力都是比赛中必不可需的,训练时同时加强这两部分。
第四天,第一题,前面十分就可以直接判断,而第二个十分,由于坐标范围较小,那么我只要用前缀和记录就可以了,但是会超时。我发现询问时时间是O(1)的,但是加点删点时间就变成O(n^3)了,这样的话均摊复杂度就行了。第二题,我的想法是求割点,然后求割出的两个集合之间的询问数。但是我不会求集合之间的询问数,就这样卡死了,只好打一个50分的程序。第三题的题目好长,最有用的是那副图,这幅图告诉我们对于每一个固定的难度下的区分度曲线都是下凸函数,而不同难度的最优值,也是一个下凸函数,这样我就三分套三分。由于我不知道这道题怎么对拍,所有都打完之后,我自己出了几个小数据看了看,没有问题,就不理了,这道题求exp的时候会爆double而且还会/0,这两个问题c++没有报错,我没有发现,这就是我这道题20分的原因。第四题,这道题看完之后没什么想法,发现nq不会很大,觉得直接暴力加圆就行了,还有就是求相切时只要找横坐标±2的范围就行了,但是前面的题目花了我太多的时间,没有时间打了。打程序时要对一些东西敏感,爆数组爆范围这些其实在开变量以及使用变量的时候就要考虑,double的除法这些自然就要想到除数为零这些。然后就要控制好每道题的时间,以及每道题的效率,期望得分,在比赛时间内得分最大化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值