1437: 王小二的求值问题

时间限制: 1 Sec 内存限制: 128 MB

提交: 141 解决: 31 统计

题目描述

题意超级简单,求一个序列的次大值。

输入

多组输入,每个测试实例占两行,包括一个整数n (1<n<1000000),接下来一行是n个int范围内的整数,求次大值;

输出

对于每个测试实例,输出序列的次大值,每个输出占一行。

样例输入

5
1 2 3 4 5

样例输出

4

方法一:冒泡排序。因为是求次大值,所以不需要排除所有数的大小,否则会超时。

方法二:用两个变量记录最大值和次大值。

注意!!!!!是多组输入(忽略了这句话错了一下午) 

方法一AC代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int a[maxn];
int main()
{
int n,i,j;
while(cin>>n&&n!=EOF)
{
for(i=0;i<n;i++) cin>>a[i];
for(i=0;i<3;i++)
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
int t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
cout<<a[n-2]<<endl;
}
return 0;
}

方法二AC代码:

#include<bits/stdc++.h>
using namespace std;
int a[1000000+10];
int main()
{
int n,max1,max2;
while(cin>>n&&n!=EOF)
{
for(int i=0;i<n;i++) cin>>a[i];
max1=a[0];
max2=INT_MIN;
for(int i=1;i<n;i++)
{
if(max1<a[i])
{
int t=a[i];
a[i]=max1;
max1=t;
if(max2<a[i]) max2=a[i];
}
else if(max1>=a[i])
{
if(max2<a[i]) max2=a[i];
}
}
cout<<max2<<endl;
} return 0;
}

方法三AC代码(sort):

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int a[maxn];
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n,i;
while(~scanf("%d",&n))
{
for(i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n,cmp);
printf("%d\n",a[1]);
}
return 0;
}

HPU 1437: 王小二的求值问题的更多相关文章

  1. 延迟求值-如何让Lo-Dash再提速x100?

    「注释」作者在本文里没有说明这么一个事实: 目前的版本Lo-Dash v2.4.1并没有引入延迟求值的特性,Lo-Dash 3.0.0-pre中部分方法进行了引入,比如filter(),map(),r ...

  2. python迭代器实现斐波拉契求值

    斐波那契数列(Fibonacci sequence),又称黄金分割数列,也称为"兔子数列":F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*).例 ...

  3. 表达式求值(noip2015等价表达式)

    题目大意 给一个含字母a的表达式,求n个选项中表达式跟一开始那个等价的有哪些 做法 模拟一个多项式显然难以实现那么我们高兴的找一些素数代入表达式,再随便找一个素数做模表达式求值优先级表 - ( ) + ...

  4. Java 计算数学表达式(字符串解析求值工具)

    Java字符串转换成算术表达式计算并输出结果,通过这个工具可以直接对字符串形式的算术表达式进行运算,并且使用非常简单. 这个工具中包含两个类 Calculator 和 ArithHelper Calc ...

  5. 诡异的C语言实参求值顺序

    学了这么久的C语言,竟然第一次碰到这么诡异的实参求值顺序问题,大跌眼镜.果然阅读面太少了! #include<iostream> void foo(int a, int b, int c) ...

  6. 用Python3实现表达式求值

    一.题目描述 请用 python3 编写一个计算器的控制台程序,支持加减乘除.乘方.括号.小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算. 二.输入描 ...

  7. [C] 关于表达式求值

    结论是:在一个表达式中,如果两个相邻操作符的执行顺序由它们的优先级决定,如果它们的优先级相同,它们的执行顺序由它们的结合性决定.若出现前述规则描述之外的情形,编译器可以自由决定求值的顺序(只要不违反逗 ...

  8. 左求值表达式,堆栈,调试陷阱与ORM查询语言的设计

    1,表达式的求值顺序与堆栈结构 “表达式” 是程序语言一个很重要的术语,也是大家天天写的程序中很常见的东西,但是表达式的求值顺序一定是从左到右么? C/C++语言中没有明确规定表达式的运算顺序(从左到 ...

  9. 数据结构算法C语言实现(八)--- 3.2栈的应用举例:迷宫求解与表达式求值

    一.简介 迷宫求解:类似图的DFS.具体的算法思路可以参考书上的50.51页,不过书上只说了粗略的算法,实现起来还是有很多细节需要注意.大多数只是给了个抽象的名字,甚至参数类型,返回值也没说的很清楚, ...

随机推荐

  1. git问题解决(摘录)

    https://blog.csdn.net/dxk539687357/article/details/54629274

  2. HDU 6130 Kolakoski

    Kolakoski 思路: 从前往后扩展,前后构成映射关系. 代码: #include<bits/stdc++.h> using namespace std; #define ll lon ...

  3. 网站链接facebook 拿新的post

    $http({ method: "GET", url: "https://graph.facebook.com/oauth/access_token?client_id= ...

  4. [转] jquery $.ajax/$(document).ready is not a function的问题

    下午完成了一个模块功能的开发,本来测试好的jquery表单验证怎么也出不来了.打开firebug,看到控制台里赫然提示:$(document).ready is not a function.感觉怪怪 ...

  5. bzoj2154: Crash的数字表格 莫比乌斯反演

    题意:求\(\sum_{i=1}^n \sum_{j=1}^m\frac{i*j}{gcd(i,j)}\) 题解:\(ans=\sum_{i=1}^n\sum_{j=1}^m \frac{i*j}{g ...

  6. nyoj-833-博弈

    833-取石子(七) 内存限制:64MB 时间限制:1000ms 特判: No通过数:16 提交数:30 难度:1 题目描述: Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和H ...

  7. WebSocket教程(二)

    运行环境:jdk8 tomcat8 无须其他jar包. package com.reach.socketController; import java.io.IOException; import j ...

  8. 32. Longest Valid Parentheses *HARD*

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  9. ThreadPoolExecutor类

    首先分析内部类:ThreadPoolExecutor$Worker //Worker对线程和任务做了一个封装,同时它又实现了Runnable接口, //所以Worker类的线程跑的是自身的run方法 ...

  10. duilib CEditUI 禁止输入中文字符,禁止复制粘贴

    1.CEditUI 禁止使用中文输入法 在 CEditUI::DoEvent 函数中,添加代码: if(m_bOnlyEnglishChar && m_pWindow &&am ...