魔法石之恋

【问题描述】

在《Harry Potter and the Sorcerer‘s Stone》中,想得到魔法石,必须要通过许许多多的测试和游戏。现在阿不思·邓布利多认为这些游戏都具有魔法力,魔法师们能够轻松的通过,我们要增加一些只能够通过智力解决的题目,需要真正的聪明人才能够通过。现在由于我们敬爱的Harry Potter同学时间有限,需要你的帮助,请你帮助他来解决这个问题。必须要在伏地魔之前得到魔法石,这样才能够保护魔法界的安全。

游戏的规则如下:

现有一游戏,玩它时将会有方块有顺序的从屏幕顶端掉下至底部,当它碰到障碍物或底部时将停下,同时自己变成障碍物。游戏规则规定,只能从方块下落前决定下落时的横向位置,使这个方块变成障碍物后的高度最低,且如果有几种横向位置使这个方块变成障碍物后的高度最低时,取最左边的横向位置下落。

 

【输入文件】(stone.in)

(1)第一行有2个整数,方块数n和屏幕宽度w。

(2)2行到n+1行每行1个整数,为第i个方块的边长a。.

     

【输出文件】(stone.out)

输出文件stone.out仅包含一个整数,即为最后障碍物的最高点高度。

 

【输入样例】

3 5

2

1

3

【输出样例】

4

【注释】

绿的为方块1,蓝的为方块2,紫的为方块3。

//每次都选择保证最底点且最左

【数据规模】

对于100%的数据

1<=w<=20

1<=a<=w

1<=n<=100

/*
  模拟
*/
#include<cstdio>
#include<iostream>
#define N 25
#define INF 1000000000
using namespace std;
int high[N],w,n;
int main()
{
    freopen("jh.in","r",stdin);
    scanf("%d%d",&n,&w);
    for(int i=1;i<=n;i++)
    {
        int a,pos,minn=INF;
        scanf("%d",&a);
        for(int j=1;j+a-1<=w;j++)
        {
            int maxn=0;
            for(int k=1;k<=a;k++)
              maxn=max(maxn,high[k+j-1]);
            if(maxn<minn)
            {
                pos=j;
                minn=maxn;
            }
        }
        for(int j=1;j<=a;j++)
          high[j+pos-1]=minn+a;
    }
    int ans=0;
    for(int i=1;i<=n;i++)
      ans=max(ans,high[i]);
    printf("%d",ans);
    return 0;
}

时间: 2024-10-20 19:30:06

魔法石之恋的相关文章

RQNOJ魔法石之恋

魔法石之恋 (stone.pas/c/cpp) [问题描述] 在<Harry Potter and the Sorcerer's Stone>中,想得到魔法石,必须要通过许许多多的测试和游戏.现在阿不思·邓布利多认为这些游戏都具有魔法力,魔法师们能够轻松的通过,我们要增加一些只能够通过智力解决的题目,需要真正的聪明人才能够通过.现在由于我们敬爱的Harry Potter同学时间有限,需要你的帮助,请你帮助他来解决这个问题.必须要在伏地魔之前得到魔法石,这样才能够保护魔法界的安全. 游戏的规则如

10喵哈哈村的魔法石

题目传送: 描述 传说喵哈哈村有三种神奇的魔法石:第一种魔法石叫做人铁石,拥有A的能量:第二种魔法石叫做地冈石,拥有B的能量:而第三种,则是最神奇的天玄石,拥有无可比拟的C的能量! 但是有一天,沈宝宝太调皮了,把一颗天玄石玩丢了-- "这可玩大发了,这样我会被天行廖责备的."沈宝宝悲伤的说到,"怎么办呢?" 这时候沈宝宝望了望窗外的飞过的白鸽,突然急中生智,想到了一个办法:干脆就用人铁石和地冈石把天玄石凑出来吧! "只要我拿若干个人铁石,若干个地冈石,他们

魔法石的诱惑

题目描述: 修罗王远远地看见邪狼狂奔而来,问道:“慌慌张张的跑什么?”邪狼大口大口的喘气:“我路过一家魔法石店,看到摆着那么多高阶魔法石,我就跑进去抢了一大袋.”修罗王怒道:“光天化日,朗朗乾坤,众目睽睽之下,你也敢抢?”邪狼:“我抢魔法石的时候,压根就没看见人,眼里只看见魔法石了”修罗王:“……” 其实邪狼的贪婪很容易理解,因为高阶魔法石有一个特征,即它的重量进行阶乘运算后末尾有几个0,就拥有同等重量的普通魔法石几倍的魔法力.例如5!=5*4*3*2*1=120,而120结尾包含1个零,这意味

洛谷 P2559 [AHOI2002]哈利&#183;波特与魔法石

P2559 [AHOI2002]哈利·波特与魔法石 题目描述 输入输出格式 输入格式: 文件中第一行有七个数,分别是 S1. S2 . …. S7 :第二行有两个数,依次分别是起点城市 i 和终点城市 j :第三行有一个正整数 c ,c<=10000, 表示随后的 c 行中每行存放了一对能直接通达的城市的信息. 能直接通达的城市的信息由三个数组成, 依次分别是两个城市的编号和这两个城市之间的地形.城市的编号都是不超过 100 的正整 数, 但是各个城市的编号未必连续. 文件里同一行中相邻的两个数

【分治】魔法石的诱惑

问题 C: [分治]魔法石的诱惑 时间限制: 1 Sec  内存限制: 128 MB提交: 88  解决: 37[提交] [状态] [讨论版] [命题人:admin] 题目描述 修罗王远远地看见邪狼狂奔而来,问道:"慌慌张张地跑什么?" 邪狼大口大口地喘气:"我路过一家魔法石店,看到摆着那么多高阶魔法石,我就跑进去抢了一大袋." 修罗王怒道:"光天化日,朗朗乾坤,众目睽睽之下,你也敢抢?" 邪狼:"我抢魔法石的时候,压根儿就没看见人,眼

题解[AHOI2002]哈利&#183;波特与魔法石

题目传送门 这是一道很经典的最短路问题 因为数据范围较小,所以不用邻接表的SPFA也不会MLE #include<bits/stdc++.h> using namespace std; int a[120][120]; //a[i][j]代表从i到j的路程(-1表示没路) int h[8] = {0,2,6,4,8,6,10,14}; //h代表每种地形所需时间 queue<int> q; //队列 int s,e;//起点和终点 int dis[120]; //dis[i]代表点

微软魔镜——从“解语花”到“读心树”的神奇魔法

所有看过<白雪公主>的童鞋们,小时候一定都曾经幻想过拥有一面恶王后的通灵"魔镜",了解一切.预知未来.正是缘于这些奇思妙想,给现代科技的发展带来了一些不可思议的神奇变化.这不,微软最近就推出了一款名为"魔镜"(Magic Mirror)的智能镜子,真的能够察言观色,让童话里的神奇"魔镜"从幻想走到了现实世界! 这款神奇"魔镜"是集合了微软面部识别.情感识别.智能搜索等等人工智能技术为一体的现代科技产物.从表面上看,

全球100部最佳影片排行

全球100部最佳影片排行 以下是IMDB(美国著名影评网站)网民评出全球100部最佳影片 :  1. <教父>The Godfather 1972年 8.9 分  科波拉黑帮经典<教父>的首部,派拉蒙公司最成功的影片之一,坐稳IMDB头把交椅应属,众望所归.虽然评论界一致对<教父>系列的第2集推崇有佳,但大多数影迷似乎还是对<教父>情有独钟,这可能与马龙·白兰度极具个力的表演有关,直到今天他那种含 糊沙哑的声音与神秘莫测的表情都依然叫人着迷.  2. <

今天懒一次 豆瓣电影Top250

今天不写代码,休息一下 1 import requests 2 from lxml import etree 3 from urllib import parse 4 offset = -25 5 i = 0 6 url = 'https://movie.douban.com/top250?start=' 7 8 while offset < 225: 9 offset += 25 10 11 start_urls = (url+str(offset)) 12 headers = { 13 'U