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

本次比赛通过三道题目的解答过程,展示了从贪心算法到动态规划、从暴力搜索到优化策略的不同解题方法。T1题揭示了贪心算法的局限性,并介绍了正确的动态规划解法;T2题探讨了如何利用倒推方法优化BFS;T3题则提出了一种高效处理字符串操作的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次比赛还可以,80(贪心)+60(BFS)+100(水法......)

T1

这道题比赛时以为是水题,就是纯贪心,但事实告诉我,贪心不严谨。我的贪心就是把a[i]从小到大排序,然后能归为一个队的就归为一队。而正解是DP,用f[i]表示前i个人的最优解;至于状态转移方程,在这就不说了。

T2

比赛是想到了借用了斐波拉切数列,结果费尽心思打了一个多小时,却发现是错的哭.......只好打了暴力BFS,60分;正解是倒推,因为最后形态是(n,i),所以只要枚举i往前推就行了,找出最优;

T3

比赛时看了有点不清楚情况,但看到一句话,就找到了突破口:


那就意味着,Undo仅仅只能删除Type,也就是说,(Undo,x)就是删除字符串后x位,然后用了一种水法,100分;


接着如果要坐200分,那么,我们就要知道一种思想:Undo是撤销,那就是会回到x步之前,那只要存下之前的版本,撤销时回到当时版本就可以了:


即版本i=版本(i-x-1);


但这要做会有一个点空间超限,所以,我们只要卡一下常数,用滚动数组就可以了;

题目在这:1      2       3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值