SDUT 3033 这题实在不知道起啥名好了(思维巧法)

这题实在不知道起啥名好了

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

懒得想背景故事了,开门见山。

有一个长度为n的整数数列A0,A1,A2....An-1。从中找出两个整数Ai和Aj,Ai在Aj的前面,即i<j,使得Ai-Aj尽可能的大。请输出可能的最大的Ai-Aj的值。

输入

多组输入。每一组测试数据的第一行是一个整数n,然后第二行是n个整数,第i个数

表示Ai。(测试数据组数<=20,2<=n<=10^6,-10^8<=Ai<=10^8).

输出

每组测试数据输出一行一个整数,为可能的最大的Ai-Aj的值。

示例输入

5
3 1 2 4 3
5
3 1 2 4 1

示例输出

2
3
#include <iostream>
#include <string>
#include <stdio.h>
#include <algorithm>

using namespace std;

int MAX(int a, int b)
{
    return a>b?a:b;
}

int main()
{
    int n;
    int max, mm;
    int i, j;
    int dd, ff;

    while(scanf("%d", &n)!=EOF)
    {
        scanf("%d", &dd);
        scanf("%d", &ff);
        max=MAX(dd, ff);

        mm=dd-ff;

        for(i=2; i<n; i++)
        {
            scanf("%d", &dd);
            if(dd<=max) //当前段的最大值
            {
                if((max-dd)>mm)
                    mm=max-dd;
            }
            else
            {
                if((max-dd)>mm)
                  mm=max-dd;
                max=dd; //更新当前段的最大值
            }
        }
        cout<<mm<<endl;

    }

    return 0;
}
时间: 2024-10-10 05:29:59

SDUT 3033 这题实在不知道起啥名好了(思维巧法)的相关文章

BestCoder4——Miaomiao&#39;s Geometry(水题。不知道放什么分类)

Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 10    Accepted Submission(s): 3 Problem Description There are N point on X-axis . Miaomiao would like to cover them ALL by us

一道编程题实在是不知道哪个地方错了

求帮忙 一道觉得很简单的编程题,提交了很多次,但是,还是wrong,实在是崩溃啊,真的不知道哪里错了,希望大家可以帮忙解决一下,感激不尽. 就是这道题----Conversions Description Conversion between the metric and English measurement systems is relatively simple. Often, it involves either multiplying or dividing by a constant

hdu 3033(好题,分组背包)

I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4919    Accepted Submission(s): 2022 Problem Description After months of hard working, Iserlohn finally wins awesome amount of sc

背包九讲(转载,实在不知道哪个是原创了)

背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附:USACO中的背包问题  前言 本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度的动态规划总结,名为<解动态规划题的基本思考方式>.现在你看到的是这个写作计划最先发布的一部分. 背包问题是一

bzoj千题计划310:bzoj5285: [Hnoi2018]寻宝游戏(思维题+哈希)

https://www.lydsy.com/JudgeOnline/problem.php?id=5285 |0 和 &1 没有影响 若填‘|’,记为0,若填‘&’,记为1 先只考虑最后一位 若要求最后=1 那么最后一个|1 要在最后一个 &0 后面 将n个数的最后一位拿出来构成一个01序列 填在所有数最后一位之前的运算符也拿出来构成一个01序列 将第n个数所在位置视为最高位 对于最高位来说 如果数字序列 和 运算符序列 都是0或都是1,没有影响 如果数字序列是0,运算符序列是1,

POJ3070:Fibonacci——题解

http://poj.org/problem?id=3070 题目大意:求Fibonacci数列第n项,对10000取模. 矩阵乘法板子题……实在不知道写什么了. #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<queue> using namespace std; typedef lo

不明觉厉的数据结构题2

例1 Harmony Forever hdu3303 题目要求你维护一个集合,每次插入一个数x,或询问集合中模一个给定数y的最小数. 操作数n<=4*10^4,x,y<=5*10^5. 首先对于一个模y的询问,我们可以在插入的时候就处理出这个答案,假设我们对于<=p的y处理出所有答案,那么插入是O(p)的,询问O(1). 然后对于>p的y我们可以暴力查询大于等于ky的数最小是多少,暴力枚举这个k,用一些你喜爱的数据结构(set?)来维护这个集合,询问复杂度大约是O(x/p*logn

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

NOIP2014-普及组复赛-第四题-子矩阵

题目描述 Description 给出如下定义: 1. 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素得到一个2*3的子矩阵如右图所示. 9   3   3   3   9 9   4   8   7   4 1   7   4   6   6 6   8   5   6   9 7   4   5   6   1 的其中一个2*3的子矩阵是4   7   48   6