塔神酷爱玩梦幻西游这款游戏,这款游戏以著名的章回小说《西游记》故事为背景,透过Q版的人物,营造出浪漫的网络游戏风格.塔神以追求天下无敌为目标,从一个默默无闻的菜鸟,打拼到了登峰造极的大师,犀利的人物当然离不开犀利的装备,于是塔神带着一堆票子开始逛市场买装备,塔神为了图个方便,只会在连续的几家摊位买装备.

现在市场有n个摊位,其中不乏奸商把价格抬的很高,但是对于混了这么就江湖的塔神来说,对每件装备心中当然会有个固定的价格,所以逛完市场以后,他把每家装备的价钱与自己心中的价钱的差价列成了一张表,只要这些连续差价的和的绝对值最小,塔神就会高兴的hold不住了,于是他把问题丢给可怜的zzd,但是像zzd这种菜鸟解决不了塔神提出高端的问题,你能帮助他完成任务吗?

输入

第一行输入n(n<=100000)表示n个摊位,以0结束

第二行包括n个数据,第i个数据m表示第i家摊位装备的差价(-100<=m<=100)

输出

输出让塔神能满意的最小值

样例输入

2
-10 4
6
2 -4 -2 6 1 5
4
1 2 -4 -5
0

样例输出

4
0
1

题意

连续子段和绝对值最小。

题解

一开始以为要O(n),然后记得求连续子段和最大的那个贪心,就想魔改,改了半天放弃了。

记一个前缀和sum[i]=a[1...i],题目变成找(i,j),求|sum[i]-sum[j]|最小值。

那么把sum排个序,求相邻最小就行了。

复杂度O(nlogn)。

代码

 #include<bits/stdc++.h>
using namespace std; const int N=1e5+; int sum[N];
int main()
{
int n,x;
while(scanf("%d",&n)!=EOF,n)
{
for(int i=;i<=n;i++)
{
scanf("%d",&x);
sum[i]=sum[i-]+x;
}
sort(sum,sum++n);
int ans=1e9;
for(int i=;i<=n;i++)ans=min(ans,abs(sum[i]-sum[i-]));
printf("%d\n",ans);
}
return ;
}

TZOJ 4024 游戏人生之梦幻西游(连续子段和绝对值最小)的更多相关文章

  1. HDOJ-1003 Max Sum(最大连续子段 动态规划)

    http://acm.hdu.edu.cn/showproblem.php?pid=1003 给出一个包含n个数字的序列{a1,a2,..,ai,..,an},-1000<=ai<=100 ...

  2. HDU 1003:Max Sum(DP,连续子段和)

    Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  3. HPU 1007: 严格递增连续子段(贪心)

    1007: 严格递增连续子段 [模拟] 时间限制: 1 Sec 内存限制: 128 MB提交: 244 解决: 18 统计 题目描述 给定一个有NN个正整数组成的序列,你最多可以改变其中一个元素,可以 ...

  4. HDU 1003 最大连续子段和

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others)M ...

  5. 【bzoj5089】最大连续子段和 分块+单调栈维护凸包

    题目描述 给出一个长度为 n 的序列,要求支持如下两种操作: A  l  r  x :将 [l,r] 区间内的所有数加上 x : Q  l  r : 询问 [l,r] 区间的最大连续子段和. 其中,一 ...

  6. [题解](线段树最大连续子段和)POJ_3667_Hotel

    题意:1.求一个最靠左的长x的区间全部为0,并修改为1,输出这个区间的左端点 2.修改一个区间为0 实际上是维护最大连续子段和,原来也写过 大概需要维护一个左/右最大子段和,当前这段最大子段长,再维护 ...

  7. JDOJ 2982: 最大连续子段和问题

    洛谷 P1115 最大子段和 洛谷传送门 JDOJ 2982: 最大连续子段和问题 JDOJ传送门 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大. 输入格式 第一行是一个正整数NN, ...

  8. 51nod 1275 连续子段的差异

    题目看这里 若[i,j]符合要求,那么[i,j]内的任何连续的子段都是符合要求的.我们可以枚举i,找到能合格的最远的j,然后ans+=(j-i+1). 那么问题就转换成了:在固定i的情况下,如何判断j ...

  9. bzoj5089 最大连续子段和 分块+复杂度分析+凸包

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5089 题解 本来打算迟一点再写这个题解的,还有一个小问题没有弄清楚. 不过先写一下存个档吧. ...

随机推荐

  1. Python3升级3.6强力Django+杀手级xadmin打造在线教育平台✍✍✍

    Python3升级3.6强力Django+杀手级xadmin打造在线教育平台 教程 Xadmin安装方法: settings.py 的配置: users App 下的 adminx.py 的配置:

  2. P1280 尼克的任务 /// DP(选择性地)

    题目大意: https://www.luogu.org/problemnew/show/P1280 题解 手推一遍思路更清晰 #include <bits/stdc++.h> using ...

  3. HttpClientUitl工具类

    public class HttpClient { private CloseableHttpClient httpClient; public HttpClient() { this.httpCli ...

  4. css实现截取文本

    .ellipsis{ max-width: 260px; // 自定义 overflow: hidden; text-overflow: ellipsis; white-space: nowrap; ...

  5. idea-----Intellij IDEA配置tomcat(非maven项目)

    Intellij IDEA配置tomcat(非maven项目) 引用: https://blog.csdn.net/springlovejava/article/details/78570241 ID ...

  6. AutoIt自动化编程(3)【转】

    模拟鼠标点击(按钮等)控件 既然是模拟用户操作,自然就包括了模拟鼠标点击在内. 适用命令/函数:Click/MouseClick/ControlClick 其中Click/MouseClick用来模拟 ...

  7. [violet6] 故乡的梦

    题目 描述 不知每日疲于在城市的水泥森林里奔波的你会不会有时也曾向往过乡村的生活.你会不会幻想过,在夏日一个静谧的午后,你沉睡于乡间路边的树荫里,一片叶子落在了你的肩上, 而你正做着一个悠长的梦,一个 ...

  8. 理清Java中try-catch-finally带return的执行顺序

    前言:try-catch-finally带return和异常时,它们之间执行顺序问题是留下来的一个小疑问,今天搞清楚它们 第一种情况:无异常 //1.try-catch-finally都带有retur ...

  9. coreseek 基与Sphinx 的全文索引

    假设有两张那个表,分别为articles,article_photos两张表.搜索的时候,要匹配articles.title.articles.intro.article_photos.caption ...

  10. PAT甲级——A1096 Consecutive Factors【20】

    Among all the factors of a positive integer N, there may exist several consecutive numbers. For exam ...