2016.9.15初中部上午NOIP普及组比赛总结
2016.9.15初中部上午NOIP普及组比赛总结
2016.09.15【初中部 NOIP普及组 】模拟赛
又翻车了!表示时超和空超很可恨!
进度
比赛:AC+0+0+20=120
改题:AC+80+0+100=280
一、Wexley接苹果
挺水的,考试时一开始理解错了题意,
想了半天转移方程。后来才发现,贪心就行了。
题目简化:
(我想到了大富翁)
苹果一个个掉下来,必须接住全部的苹果。
盘子是有长度的,只要碰得到,就能接住!(神话!)
要求最小步数。
正解:
贪心。
分三种情况
for(i=1,i<=k,i++) for i:=1 to k do
i:=1~k
1. 不用移动即可接住!ans:=ans;
2. 向左移才能接。用左边边缘接住。ans:=ans+abs(l-a[i]); l:=a[i]; r:=l+m-1;
3. 向右移才能接。用右边边缘接住。ans:=ans+abs(r-a[i]); r:=a[i]; l:=r+1-m;
二、Leo搭积木
空间超限!无语~
题目简化:
有人无聊,想搭积木。
下面的长宽要大于上面的(不然,就倒了)
可以旋转。
最大高度。
正解:
首先,把读入的分身成三个。
因为可旋转、长>=宽,
长放宽前面,高不管。
- abh和bah
- ahb和hab
- bha和hba
哪个长就放左边
然后爆搜。
bz[i,j]表示i*j时的最高的高度。
在如果没有之前的高,就exit,否则更新。
可惜爆搜只能80。听说100DP。
三、Candy选首都
正在加载中。。。
四、Leopard学霸
改好久了!
题目简化:
没简化。
比赛思路:
全加起来,水了20分。
正解:
用堆做。
先以时间为关键字quick_sort。
弄一个小顶堆(作业量)
每到一个就看看它的时间是否大于num
如果满足则要插入。
不然要与ans[1]作比较,取最大的。
最后把堆里的数加起来
送上核心:
for i:=1 to n do
begin
if a[i,1]>num then
begin
inc(num);
ans[num]:=a[i,2];
up(num);
end else
begin
if a[i,2]>ans[1] then
begin
ans[1]:=a[i,2];
down(1);
end;
end;
end;
题外话:
1、这次题目不水。
2、堆不是很熟。
3、总之一个字——坑!