数据结构与算法实验题 4.2 Who is the strongest

★实验任务

在神奇的魔法世界,召唤师召唤了一群的魁偶。这些魁偶排成一排,每个魁偶都有一个

战斗值。现在该召唤师有一个技能,该技能能对其中某个魁偶战斗值进行提高,增加的值为

排在该魁偶左边的战斗值大于它且离他最近的魁偶的战斗值(若该魁偶左边没有大于它的则

战斗值不变)。若有一排魁偶战斗值为 8 7 6 8 9 2 则对最后一个魁偶是用该技能的话则最

后一个魁偶战斗值变成 2+9=11。现在召唤师召唤了一排魁偶,从左到右战斗值都已知,召

唤师只能使用一次技能,现在让你进行选择其中一个魁偶使用技能,使得战斗值最大的魁偶

的战斗值最大。如上面一排魁偶战斗值为 8 7 6 8 9 2 若对第 3 个使用则最大为 13,对第

二个使用最大值为 15,所以最佳情况是对第二个魁偶使用该技能。

★数据输入

输入第一行为一个正整数 N (2 < N <= 100000), 表示有 N 个魁偶排成一列。

第 2 行 N 个整数。第 i 个整数 ai 表示第 i 个魁偶战斗值为 ai(0<ai<=1000000)。

★数据输出

输出一行一个整数,表示最大战斗值。

输入示例

6

8 7 6 8 9 2

输出示例

15

水题。。。。。一直懒得做。

这题直接遇到小于等于当前的出栈就好(保证栈里的元素越栈底越大)

不过话说我用自己写的栈比STL快。

嗯哼。

#include<cstdio>
const int MAXN= 100000+10;
int data[MAXN];
struct stack
{
int d[MAXN];
int len; bool empty()
{
return len==0;
} int top()
{
return d[len];
} void pop()
{
len--;
} void push(int x)
{
d[++len]=x;
}
}s;
int main()
{
int n,i;
int ans=-99999;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);
ans=ans>data[i]? ans:data[i];
} int temp;
for(i=0;i<n;i++)
{
while(!s.empty())
{
temp=s.top();
if(data[i] >= temp)
{
s.pop();
}
else
{
ans= ans>(temp+data[i])? ans: (temp+data[i]);
break;
}
}
s.push(data[i]); }
printf("%d\n",ans);
}

数据结构与算法实验题 4.2 Who is the strongest的更多相关文章

  1. 数据结构与算法实验题 6.1 s_sin’s bonus

    数据结构与算法实验题 6.1 s_sin's bonus ★实验任务 正如你所知道的 s_sin 是一个非常贪玩的人 QAQ(如果你非常讨厌他请直接从第二段开 始看),并且令人感到非常遗憾的是,他是一 ...

  2. 数据结构与算法实验题 9.1 K 歌 DFS+剪枝

    数据结构与算法实验题 K 歌 ★实验任务 3* n 个人(标号1~ 3 * n )分成 n 组 K 歌.有 m 个 3 人组合,每个组合都对应一个分数,你能算出最大能够得到的总分数么? ★数据输入 输 ...

  3. HDU 3791 二叉搜索树 (数据结构与算法实验题 10.2 小明) BST

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3791 中文题不说题意. 建立完二叉搜索树后进行前序遍历或者后序遍历判断是否一样就可以了. 跟这次的作业第 ...

  4. 数据结构与算法实验题6.1 s_sin’s bonus byFZuer

    玩家从n 个点n-1 条边的图,从节点1 丢下一个小球,小球将由于重力作用向下落,而从小球所在点延伸出的每一条边有一个值pi 为小球通过该条边的概率(注意从同一个节点向下延伸的所有边的pi 的和可以小 ...

  5. 数据结构与算法实验题7.1 M 商人的求救

    问题描述:A 国正面临着一场残酷的战争,城市被支持不同领导的两股势力占据,作为一个商人,M先生并不太关心政治,但是他知道局势很严重,他希望你能救他出去.M 先生说:“为了安全起见,我们的路线最多只能包 ...

  6. 数据结构与算法实验题 7.1 M 商人的求救

    问题描述: A 国正面临着一场残酷的战争,城市被支持不同领导的两股势力占据,作为一个商人,M先生并不太关心政治,但是他知道局势很严重,他希望你能救他出去.M 先生说:"为了安全起见,我们的路 ...

  7. DS实验题 Dijkstra算法

    参考:Dijkstra算法 数据结构来到了图论这一章节,网络中的路由算法基本都和图论相关.于是在拿到DS的实验题的时候,决定看下久负盛名的Dijkstra算法. Dijkstra的经典应用是开放最短路 ...

  8. 大公司面试经典数据结构与算法题C#/Java解答

    几个大公司(IBM.MicroSoft and so on)面试经典数据结构与算法题C#解答 1.链表反转 我想到了两种比较简单的方法 第一种是需要开一个新的链表,将原链表的元素从后到前的插入到新链表 ...

  9. 【算法】数据结构与算法基础总览(中)——刷Leetcode等算法题时一些很实用的jdk辅助方法锦集

    最近重新学习数据结构与算法以及刷leetcode算法题时,发现不少jdk自带的方法可以提升刷题的效率.这些小技巧不仅仅对刷算法题带来便利,对我们平时开发也是很有帮助的.本文以java语言为基础,记录了 ...

随机推荐

  1. Kinect 开发 —— 姿势识别

    姿势和手势通常会混淆,但是他们是两个不同的概念.当一个人摆一个姿势时,他会保持身体的位置和样子一段时间.但是手势包含有动作,例如用户通过手势在触摸屏上,放大图片等操作. 通常,游戏者很容易模仿指定姿势 ...

  2. 洛谷 P1957 口算练习题

    洛谷 P1957 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效 ...

  3. Java数据传递实验

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在开发过程中,我们经常会遇到对象传递的问题,有时仅仅传递数据,有时却要实现数据同步:这时,就要分清两 ...

  4. 洛谷 P2867 [USACO06NOV]大广场Big Square

    P2867 [USACO06NOV]大广场Big Square 题目描述 Farmer John's cows have entered into a competition with Farmer ...

  5. HDOJ 5399 Too Simple

    每个函数都必须是一个排列,经过连续的一段确定函数后数字不能少. 满足上面的条件的话,仅仅要有一个-1函数特别的排列一下就能够满足要求,剩下的能够任意填 没有-1的话特判 Too Simple Time ...

  6. 源代码编译安装CloudStack 4.2

    基于CentOS 6.4安装CloudStack 环境配置 # yum -y update # yum -y upgrade 安装NTP,jdk 1.7, tomcat 6, mysql,git等服务 ...

  7. thinkphp事务处理以及无效时的解决方案(整理)

    thinkphp事务处理以及无效时的解决方案(整理) 一.总结 一句话总结:要程序里面支持事务,首先连接的数据库和数据表必须支持事务 mysql 1.InnoDB和MyISAM对事务的支持怎么样? I ...

  8. BZOJ3998: [TJOI2015]弦论(后缀自动机,Parent树)

    Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...

  9. Ubuntu系统简介

    1.ubuntu 远程连接 需要开启ssh 服务 sudo apt-get install openssh-server service ssh start|stop|restart 2.查看Linu ...

  10. 一种较为隐蔽ConcurrentModificationException情形

    ConcurrentModificationException是遍历过程中修改list而抛出的错误.就像前面分析的,单线程时这种错误主要是因为使用forEach造成:遍历一个拷贝,修改原始list,造 ...