救火行动 ( save )  模拟

【题目描述】

秋哥

喜欢唱歌。尤其是那种激情似火的歌。

我滴热情,嘿,好像一把火,燃烧了整个科学馆!

?

NeroYSQ

这不,科学馆马上就起火了。于是,我们要救火,拯救学校财产于危难之中。科学馆

是一栋

N

层的建筑

,起火地点位于每一层的最右边的那件房(就是五机房所在的位置)。我

们用一个火势值来描述一间房的火势大小,如果一个房间的火势值为

K

,那么这间房就需要

至少

K

的水量才能扑灭这里的火。

现在同学们打算用

<<

人多力量不一定大

>>

的方法来救火,方法如下:

1.

先在

每一层都部署一些人,第

i

层部署

A[i]+1

个人。

2.

将这

A[i]+1

个人顺序编号为

0~A[i]

3.

0

号人(比方说

Crab

)站在每一层的厕所处,他将水从厕所的水龙头里引向楼

道。

4.

j

0<j<A[i]

)号人每个人手里拿一个水桶,水桶有一个容量

B[i][j]

,他将

用自己手里的水桶从第

j

-

1

号人那里接水。超过他的水桶容量的水会被浪费掉。

水将以类似于接力的方式向右传递。第

0

号人能提供的水量可以视为无穷大。

5.

A[i]

号人手里也有一个水桶,他将会把他的得到的水直接筐到着火的房间里去,

由于这个人任务重大,他手里的水桶是特制的,容量为

1~A[i

-

1]

号人手里的水

桶的容量之和再加一。

如果这一层只有一个人,那么这个人的水桶容量就为一。

6.

救火行动是一轮一轮进行的。在每一轮中,只有特定一层的那一组同学会工作,而

且每个人只会传一次水,传完了就看着别人传,直到水被送到着火点(跟动

画片里

的情节挺像的!),这一轮结束。

如果这一层传到着火点的总水量不小于这一层的火

势值了,火将立即被扑灭。

一轮将持续固定的

一分钟

7.

救火行动将从第

N

层开始,每一层的火被扑灭了下一层才会开始。

8.

由于秋哥本人就位于第五层,所以第五层的火势特别猛烈,而且因为秋哥一直再唱

歌,所以火势会随着时间

不断

增强。

秋哥有一个热情值

P

每一轮结束时

,如果秋

哥所在的这一层的火还没有被完全扑灭,这里的火势就会增加

P

。如果记这一轮结

束时还有

Q

层的火没有被扑灭,这个热情值

P

就等于

Q

9.

由于每次只有一层的同学处于工作状态

,所以别的层的同学会

关注正在工作的那一

层,

每一层的火被扑灭时,所有的

同学都会因为感到非常兴奋而庆祝整整一轮,在

用来庆祝的这一轮中,所有同学都不会传水。

10.

一旦第一层的火被扑灭

或救火行动持续了

整整一天

,整个救火行动瞬间结束。

也就

是说第一层的火被扑灭时,同学们不会浪费时间来庆祝。

如果你发现了这一行字,

请不要高声喧哗,不要让别人发现

求整个救火行动将持续多少轮。

【输入数据】

第一行一个数,

N

,表示科学馆有

N

接下来

N

行,每行若干个数,第一个数表示

A[i]

,接下来

A[i]

-

1

正整

,第

j

数表示

B[i][j]

,再接下来一个

正整

K[i]

,表示这一层的火势值

【输出数据】

一个数,就是整个救火行动将持续的轮数

【输入样例

1

6

6 10 5 8 6 5 12

1 2

4 1 2 3 4

4 4 3 2 1

5 100 99 98 6 1

2 1

1

【输出样例

1

22

【输入样例

2

6

6 10 5 8 6 5 12

1 2

4 1 2 3 4

4 4 3 2 1

5 100 99

98 6 2

2 1

1

【输出样例

2

23

【输入样例

3

5

1 100

2 100 100

3 100 100 100

4 100 100 100 100

5 100 100 100 5 6

【输出样例

3

1440

【数据约定】

100%

5

N

≤ 100

1

A[i]

≤ 100

1

B[i][j]

≤ 100

1

K[i]

≤ 100

【友情提示】

题目描述非常长,请特别注意题目中

要求。

为了防止理解上的偏差,请

参考

样例

,仔细模拟一遍样例

另外还有一点,过了样例也不一定能全对。


这题其实就是一个模拟而已,提高D1T1难度。

代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define ll long long
#define il inline
#define db double
using namespace std;
il int  gi()
{
    int x=0,y=1;
    char ch=getchar();
    while(ch<‘0‘||ch>
      ‘9‘)
    {
    if(ch==‘-‘)
        y=-1;
    ch=getchar();
    }
    while(ch>=‘0‘&&ch<=‘9‘)
    {
    x=x*10+ch-‘0‘;
    ch=getchar();
    }
   return x*y;
}
il ll  gl()
{
    ll x=0,y=1;
    char ch=getchar();
    while(ch<‘0‘||ch<‘9‘)
    {
    if(ch==‘-‘)
        y=-1;
    ch=getchar();
    }
    while(ch>=‘0‘&&ch<=‘9‘)
    {
    x=x*10+ch-‘0‘;
    ch=getchar();
    }
    return x*y;
}
int a[145];
int minx[145];
int b[145][145];
int k[145];
int main()
{
    freopen("save.in","r",stdin);
    freopen("save.out","w",stdout);
    memset(minx,127/3,sizeof(minx));
    int n=gi();
    for(int i=1;i<=n;i++)
    {
    a[i]=gi();
    for(int j=1;j<a[i];j++)
    {
        b[i][j]=gi();
        minx[i]=min(minx[i],b[i][j]);
    }
    k[i]=gi();

    if(a[i]==1)
        minx[i]=1;
    }
    int now=n,ans=0;
    while(now!=0)
    {
    k[now]-=minx[now];
    ans++;
    if(k[now]<=0)

    {
        now--;
        ans++;
            k[5]+=now;
    }
    k[5]+=now;
    if(ans>1440
        )
        break;
    }
    printf("%d\n",ans-1);
    return 0;
}
时间: 2024-11-05 12:30:20

救火行动 ( save )  模拟的相关文章

注解方式实现声明式事务管理

使用注解实现Spring的声明式事务管理,更加简单! 步骤: 1) 必须引入Aop相关的jar文件 2) bean.xml中指定注解方式实现声明式事务管理以及应用的事务管理器类 3)在需要添加事务控制的地方,写上: @Transactional @Transactional注解: 1)应用事务的注解 2)定义到方法上: 当前方法应用spring的声明式事务 3)定义到类上:   当前类的所有的方法都应用Spring声明式事务管理; 4)定义到父类上: 当执行父类的方法时候应用事务. 修改bean

国家电力项目-03

*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:#99ccff;}*.hl_mark_KMSmartTagYellowImg{background-color:#ffff66;}*.hl_mark_KMSmartTagOrangeImg{background-color:#ffad5b;}*.hl_mark_KMSmartTagGreenImg{b

Spring2.5学习3.2_编码剖析@Resource注解的实现原理

首先看一下J2EE提供的@Resource注解:该注解默认安照名称进行装配,名称能够通过name属性进行指定, 假设没有指定name属性,当注解写在字段上时,默认取字段名进行依照名称查找,假设注解写在setter方法上默认取属性名进行装配. 当找不到与名称匹配的bean时才依照类型进行装配.可是须要注意的是,假设name属性一旦指定.就仅仅会依照名称进行装配. 这里我们模拟@Resource注解,便于理解注解的实现原理: 1.首先在前面模拟的容器中加入注入的方法annotationInject(

使用ajax实现简单的带百分比进度条

需求:当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验 实现步骤 JSP页面 1.添加table标签 <table id="load" width="700" border="0" align="center" bgcolor="#FAFAFA" cellpadding="0" cellspacing="0" borderco

Spring AOP示例代码

public interface CustomerDao { public void save(); public void update(); } public class CustomerDaoImpl implements CustomerDao { public void save() { // 模拟异常 // int a = 10/0; System.out.println("保存客户..."); } public void update() { System.out.pri

Python元类

学懂元类,首先要知道两句话: 道生一,一生二,二生三.三生万物 我是谁?我从哪里来?我要到那里去? 在Python的世界里,拥有一个永恒的道:type,如此广袤无垠的Python生态圈,都是由type产生出来的. 道生一,一生二,二生三,三生万物. 道:即就是type 一:即是metaclass 二:即是class(或者实例生成器) 三:即是instance 1 关于类 道和一,是我们今天讨论的命题,而二.三.和万物,则是我们常常使用的类.实例.属性和方法,用hello world来举例: 1

Drango框架2

目录 Drango框架2 一.静态文件 二.request对象 三.django orm的简介 Drango框架2 一.静态文件 1.什么是静态文件 ? 网站所使用到的提前已经写好的文件 ? css ? js ? 第三方的组件:bootstrap ? sweetalert ? fontawesome ? 网站所用到的html文件统一放到templates文件夹中 ? 针对网站使用到的静态文件放到static文件夹中,这个文件夹要自己去手动创建 ? 内部的结构如下: ? static ? -css

Jquery源码分析与简单模拟实现

前言 最近学习了一下jQuery源码,顺便总结一下,版本:v2.0.3 主要是通过简单模拟实现jQuery的封装/调用.选择器.类级别扩展等.加深对js/Jquery的理解. 正文 先来说问题: 1.jQuery为什么能使用$的方式调用,$是什么.$()又是什么.链式调用如何实现的 2.jQuery的类级别的扩展内部是怎样实现的,方法级别的扩展有是怎样实现的,$.fn又是什么 3.jQuery选择器是如何执行的,又是如何将结果包装并返回的 带着这些问题,我们进行jquery的模拟实现,文章下方有

poj1379+POJ2420+hdu3932(最短距离+费马点+模拟淬火算法)

Run Away Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 5632   Accepted: 1729 Description One of the traps we will encounter in the Pyramid is located in the Large Room. A lot of small holes are drilled into the floor. They look complet