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搭积木
空间超限!无语~
题目简化
有人无聊,想搭积木。
下面的长宽要大于上面的(不然,就倒了)
可以旋转。
最大高度。
正解
首先,把读入的分身成三个。
因为可旋转长>=宽
长放宽前面,高不管。

  1. abh和bah
  2. ahb和hab
  3. 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、总之一个字——坑!

你可能感兴趣的:(比赛总结)