天天看点

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

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

T1

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

T2

比赛是想到了借用了斐波拉切数列,结果费尽心思打了一个多小时,却发现是错的

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

.......只好打了暴力BFS,60分;正解是倒推,因为最后形态是(n,i),所以只要枚举i往前推就行了,找出最优;

T3

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

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

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

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

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

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

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

题目在这:1      2       3

继续阅读