您的位置:首页 > 其它

2016.10.29【初中部 NOIP提高组 】模拟赛C题解

2016-10-29 15:38 316 查看
初赛后好久没打比赛了(爽!23333)。

T1:

        分队问题

题目大意:给出一个N,表示有N个人,第i个人想让自己的队伍有≥a[i]个人。在满足每个人的欲望想法下,最多能有多少个队伍。

           考试的时候,弄个贪心!

           真是个奇妙的贪心,连不成立也不知道2333333

           样例:

                 2 2 3 2 1 

           我们先排序变成了3 2 2 2 1,然后我们先满足第一个人的欲望,就包括他自己往后面取3个数(3,2,2),然后再满足第四个人(2),往后取2个,取完了,就2个。

           但是有反例:

            1 2 4 5 5 5 5 5

           如果按照贪心的话,就是(1,2,4)(5,5,5,5,5),第三个人没有满足。正解:(1,2)(4,5,5,5,5,5)2组。

           不过拿了80分233333贪心

           通过这个贪心,我们可以设f[i]表示前I个人可以组成最多的队伍数。怎么转移捏?

           1 2 4 5 5 5 5 5

           !  !   !              i当前的I是有!的位置推过来的,自己脑补。所以就是f[i]=max{f[j]+1},j即为!位置。但是这样双重循环会超时,边做边存一个max(f[j])即可。

T2:

        数字对

题目大意:从(1,1)这个数对开始到达一个(n,x)或者(x,n)的最少步数(x为任何数),变化为(a,b)=(a+b,b) or (a,a+b)。

           我们可以通过一个(a,b)可以得到到达(1,1)的步数,自己想想,所以我们可以枚举一个(n,i),求出这个数对到(1,1)的最少步数,输出即可。

T3:

        高级打字机

           题目大意:给出3种操作,T x:在字符串加上x这个字符。Q x,即输出字符串第x个字符。U x,撤回最后x个命令操作,输出不算命令操作。100% U x不撤销U的。200%撤销操作可以撤销掉前面的撤销操作

           100%

           按照题目做就可以了,没什么大不了的。

           180%

           其实用过电脑的都知道(你就在用2333),撤销x次,就是返回到x次之前,也就是说,如果当前时撤销操作,那么这个字符串是前x个字符串。官方叫模板(不鸟他)。于是我们存起来这个模板就可以了。不过空间有点呵呵...

           200%

           打一个循环数组即可。

           或者trie+倍增法寻祖+各种可持久化数据结构(你初一会打?)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: