• 1002 小婷婷吃蘑菇(模拟)


    1002: 小婷婷吃蘑菇

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 353  解决: 159
    [提交][状态][讨论版]

    题目描述

    小婷婷是个吃货,  有一天,  她来到了神奇的魔法谷,  这里有一条单行道路,  小婷婷为了吃到世界上最美味的食物,必须要穿过这条道路。 
    这是一个长度为 N 的魔法道路,小婷婷需要从 1 走到 N。每个单位长度上有一个蘑菇,  因为小婷婷是个大吃货,  所以她总是控制不住自己,  必须要吃掉在眼前的食物。  但是这些蘑菇受到了魔法的影响,有的可以增加小婷婷的生命,有的可以减少小婷婷的生命。当小婷婷的生命小于 0 时,小婷婷就不能前进, 被召回现实世界了,  现在小婷婷希望大家告诉她,她最少需要有多少初始生命值,才能通过这条魔法道路,吃到世界上最美味的食物? 

    输入

    第 1 行:一个数 N,表示魔法道路的长度。(1 <= N <= 50000) 
     
    接下来的 N 行,每行一个数 A[i],表示第 i 个单位上有一个魔法蘑菇,可以对小婷婷的生命增加 A[i](如
    果 A[i] > 0,表示小婷婷生命增加 A[i],如果 A[i] < 0,表示小婷婷生命减少 A[i])。 
     
    其中-1000000000 <= A[i] <= 1000000000。 

    输出

    输出小婷婷通过魔法道路的最小初始生命。 

    样例输入

    5
    1
    -2
    -1
    3
    4
    

    样例输出

    2
    

    提示

    从前向后,记录最小值,

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3  
     4 #define LL long long
     5  
     6 int main()
     7 {
     8     int n;
     9     int i;
    10  
    11     LL sum;
    12     LL a;
    13     LL mn;
    14  
    15     while (~scanf("%d", &n)) {
    16         sum = 0;
    17         mn = 0;
    18         for (i = 1; i <= n; ++i) {
    19             scanf("%lld", &a);
    20             sum += a;
    21             mn = min(mn, sum);
    22         }
    23         printf("%lld
    ", -mn);
    24     }
    25  
    26     return 0;
    27 }

    自己不知道咋想的,从后向前加,方法好像不对啊...

    错误代码,

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 #define LL long long
     5 
     6 const int MAXN = 50000 + 5;
     7 
     8 LL a[MAXN];
     9 
    10 int main()
    11 {
    12     int n;
    13     int i;
    14     LL sum;
    15 //    LL a;
    16     while (~scanf("%d", &n)) {
    17         for (i = 1; i <= n; ++i) {
    18             scanf("%lld", &a[i]);
    19         }
    20         for (i = n; i >= 1; --i) {
    21             if (a[i] < 0) {
    22                 break;
    23             }
    24         }
    25         sum = 0;
    26         for (; i >= 1; --i) {
    27             sum += a[i];
    28         }
    29         printf("%lld
    ", -sum);
    30     }
    31 
    32     return 0;
    33 }
    View Code
  • 相关阅读:
    与生命晒跑
    关于你有一条未读短信的静态单页
    【微收藏】来自Twitter的自动文字补齐jQuery插件
    chrome 插件个人使用推介
    vscode中检测代码中的空白行并去除的方法
    FTP文件乱码导致的无法删除
    git操作遇到的几个问题
    一个srand、rand结果相同的问题
    【verilog】单周期MIPS CPU设计
    【verilog】多周期MIPS CPU设计
  • 原文地址:https://www.cnblogs.com/gongpixin/p/6790550.html
Copyright © 2020-2023  润新知