星界边境最后boss:pascal题目

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/10 12:17:49
Problem
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在使用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

Input
最多20个整数,分别表示导弹依次飞来的高度(雷达给出高度数据是不大于30000的正整数)

Output
两个整数M和N。表示:这套系统最多能拦截 M 枚导弹,如果要拦截所有导弹最少要配备 N 套这种导弹系统。

Sample Input
300 250 275 252 200 138 245

Sample Output
5 2

经典的动态规划,印象是NOIP99年的
令d[k]为打中第k枚导弹以后,含第k枚导弹在内一共最多可以打k枚,则有状态转移方程:
d[k]= MAX {d[i]+1,1} (i>k)and(d[i]<=d[k])
显然有d[n]=1,故从n逆推至d[1]即可,则 MAX{d[k]}为所求。 1<=k<=n

用动态规划做,有空去试试。