1344 走格子

1344 走格子

基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题

有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了。问机器人最少需要有多少初始能量,才能完成整个旅程。

例如:n = 5。{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子。途中的能量变化如下3 1 0 3 7。

Input

第1行:1个数n,表示格子的数量。(1 <= n <= 50000)
第2 - n + 1行:每行1个数A[i],表示格子里的能量值(-1000000000 <= A[i] <= 1000000000)

Output

输出1个数,对应从1走到n最少需要多少初始能量。

Input示例

5
1
-2
-1
3
4

Output示例

2

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1344

分析:前缀和问题,求最小值,大概是这个意思吧!

下面附上AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int INF=2147483647;
 4 int inf=-2147483648;
 5 int main()
 6 {
 7    __int64 n;
 8    __int64 m;
 9    __int64 minn=INF;
10    while(scanf("%I64d",&n)!=EOF)
11    {
12        __int64 ans=0;
13        __int64 t;
14        while(n--)
15        {
16            scanf("%I64d",&m);
17            ans+=m;
18            if(ans<0)
19            {
20                minn=min(ans,minn);
21            }
22        }
23        printf("%I64d\n",-minn);
24    }
25    return 0;
26 }

时间: 2024-10-12 11:35:16

1344 走格子的相关文章

1289 大鱼吃小鱼 1305 Pairwise Sum and Divide 1344 走格子 1347 旋转字符串 1381 硬币游戏

1289 大鱼吃小鱼 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右).问足够长的时间之后,能剩下多少条鱼? Input 第1行:1个数N,表示鱼的数量(1 <= N <= 100000). 第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A[i] <= 10^9,B[i] = 0 或 1

51nod 1344 走格子(水题+贪心)

1344 走格子 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 取消关注 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了.问机器人最少需要有多少初始能量,才能完成

51Nod 1344 走格子(贪心

1344 走格子 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了.问机器人最少需要有多少初始能量,才能完成整个旅程. 例如:n = 5.{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子.

51Nod 1344 走格子 (贪心)

有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了.问机器人最少需要有多少初始能量,才能完成整个旅程. 例如:n = 5.{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子.途中的能量变化如下

1344 走格子 (前缀和)

有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了.问机器人最少需要有多少初始能量,才能完成整个旅程. 例如:n = 5.{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子.途中的能量变化如下

51 nod 1344 走格子

今天开始在51nod上刷题..作为新手在这题上坑了...以后做题要注意数据类型了还有要多看看库函数.比如abs()返回类型是int的. #include <stdio.h> #include <math.h> #define inf 100000; int main() { int n; long long min=inf; long long sum=0; long long t; scanf("%d",&n); while(n--) { scanf(

HNUST-1681 机器人走格子(找规律)

1681: 机器人走格子 时间限制: 1 Sec  内存限制: 128 MB提交: 244  解决: 58[提交][状态][讨论版] 题目描述 一个长X宽Y的棋盘,有XY个格子.将机器人放在某个格子中,机器人可以沿上.下.左.右四个方向走一步到相邻的格子中,但不会越过棋盘边界. 问机器人要经过所有的格子至少一次并最终回到起点最少需要多少步?规则允许机器人多次走过同一个格子.对于X=Y=1的情形,我们认为答案为0. 输入 输入数据的第一行是一个整数T(0<T<=50),测试数据的组数. 每组测试

【题解】 第五届在线编程大赛月赛第二题:走格子

题目详情 我们有一个两行n列格子的棋盘,你可以从任何位置出发.每次你可以沿着上下左右以及对角线的方向走一格(不能出去),求有多少条可能的哈密尔顿路?(即所有的格子只经过一次的路.) 例如: a b c d e f 一条可能的路径是b,f,c,e,d,a 输入格式: 多组数据,每组数据1行,包含一个正整数n表示列数. (n <= 1000) 输出格式: 每组数据输出一行包含一个整数,可能的路径条数.结果比较大,输出对10^9 + 7的结果 答题说明 输入样例 1 2 3 输出样例: 2 24 96

51nod走格子

基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了.问机器人最少需要有多少初始能量,才能完成整个旅程. 例如:n = 5.{1,-2