NOIP2015题目简单分析

今年的NOIP的前两题比较简单,原题是在NOI题库上的题目,分别是金币http://noi.openjudge.cn/ch0105/40/和扫雷游戏http://noi.openjudge.cn/ch0108/13/,两道题都是相当简单。下面简单分析一下这次考的题目。
【金币】
这一道题没有什么好说的,做的方法五花八门,比较简单,我就直接用两个变量j和sum,还有一个每次加1的i,令得i=1,j=0,接着j每次都加一个i,sum每次都加一个i*i,并且当j>=k的时候就停止,最后将那些多出来的部分减掉即可。
【扫雷游戏】
这一道题直接一个O(mn)的算法即可,扫描每一个点,统计其附近八个方向的雷数,记住如果是雷的话保留成原来的字符"*"。
【求和】
这一道题有一些比较简单的算法,可以水到一些分。首先20%的数据就不讲了,直接一个搜索。40%的数据找一下规律就好了,注意到2y=x+z,所以一般来说只要(x+z)是二的倍数,并且x!=z就可以判定。所以一个二重循环枚举x和z就可以了。不过其实z可以跳着枚举,注意到(x+z)是二的倍数,并且z>x,所以循环是可以使j=2 to n-x,然后z的值就是j+x。60%的数据,注意到那个条件,相同的元素出现的次数不超过20次,所以可以采用一种类似于希尔排序的链式优化。首先将整个序列按颜色排序,接着将同种颜色的元素依次进行n^2次枚举,这样加起来的答案就是最终的答案,而且极限数据也只是20^2*100000,大约是4千万的运算量,擦边过,不会超。
而其实可能是满分的讨论出来的题解,和这差别也不大。同样是排序,但是却将整个序列按奇偶分成两个序列分别排序,同样是按颜色,接着直接O(n)的方法用递推之类的优化一下就成了。注意,这里因为分开了奇偶,所以并不用再加判断,所以直接算……就行了。
【推销员】
这一道题其实看上去是一个背包,但是数据范围比较大,所以我就勉强用O(n^2)的算法先水过60分。但是这一道题应该是贪心。据测试,贪心是一个比较不错的解法,好像一次排序然后线性扫描就可以得出全部的结果,貌似是一个不错的解法,但是又好像可以找出反例,好像要一直更新,又好像要O(n)的动规……或许CCF在坑你呢,我也不知道到底什么是正确的解法,但是杜邦和官耀威都似乎用的是贪心,不知道能过多少的数据。也许是有反例的吧。

【得分总结】
我预计我的得分应该不算太高,可能乐观估计是320左右,如果不出太坑的数据的话应该还是能多过少许点的。毕竟平方和加起来比和的平方大很多嘛。在当场测的时候,暴力解法加上了常数的优化过第三个样例数据时用了2000+ms,而我的优化版解法只用了600+ms。可见其高效。所以只要没有太坑的数据即可,最好是不要全部颜色都一样的……

【题目总结】
这次的题目出题的难度设定比较怪异,一二题特别容易而三四题比较难……真不知道出题人是怎么想的,三四题都要想半天的优化,又没考什么算法,搞了半天就是在那里优化来优化去,并没有什么卵用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值