Uva----------(11078)Open Credit System
Open Credit System
Input:Standard Input
Output: Standard Output
In an open credit system, the students can choose any course they like, but there is a problem.
Some of the students are more senior than other students. The professor of such a course has found quite a number of such students who
came from senior classes (as if they came to attend the pre requisite course after passing an advanced course).
But he wants to do justice to the new students. So, he is going to take a placement test (basically an IQ test) to assess
the level of difference among the students. He wants to know the maximum amount of score that a senior student gets more than
any junior student. For example, if a senior student gets 80 and a junior student gets 70,
then this amount is 10. Be careful that we don't want the absolute value. Help the professor to figure out a solution.
Input Input consists of a number of test cases T (less than 20). Each case starts with an integer n which is the number of students in the course.
This value can be as large as 100,000 and as low as 2. Next n lines contain n integers where the i'th integer is the score of the i'thstudent.
All these integers have absolute values less than 150000. If i < j, then i'thstudent is senior to the j'th student.
Output For each test case,
output the desired number in a new line. Follow the format shown in sample input-output section.
Sample Input
Output for Sample Input
|
3 2 100 20 4 4 3 2 1 4 1 2 3 4 |
80 3 -1 |
这道题,就是给出一系列的有序的数,比如a[0] a[1],a[2],a[3].....a[i]....a[n]. 要你求出a[i]-a[j]的最大值(注意i<j )
而且数据规模也是十万加的.....,可想而知,朴树的算法是会超时..
采用动态规划的思想...
先逐渐求出区间的最大值,注意每一次扩展时,都进行一次比较...
代码如下:
#include<cstdio>
#include<cstring>
const int maxn=;
int aa[maxn];
inline int max(int a,int b){
return a>b?a:b;
} int main(){
int n,m;
//freopen("test.in","r",stdin);
scanf("%d",&n);
while(n--){
scanf("%d",&m);
for(int i=;i<m;i++)
scanf("%d",aa+i);
int cnt=aa[]-aa[];
int maxc=aa[];
for(int i=;i<m;i++){
cnt=max(cnt,maxc-aa[i]);
maxc=max(maxc,aa[i]);
}
printf("%d\n",cnt);
}
return ;
}
进一步优化之后的
代码:
#include<cstdio>
#include<cstring>
const int maxn=;
inline int max(int a,int b){
return a>b?a:b;
}
int main(){
int n,m;
int b,c;
int ans;
freopen("test.in","r",stdin);
scanf("%d",&n);
while(n--){
scanf("%d",&m);
scanf("%d",&b);
ans =-;
for(int i=;i<m;i++){
scanf("%d",&c);
ans=max(ans,b-c);
b=max(b,c);
}
printf("%d\n",ans);
}
return ;
}
Uva----------(11078)Open Credit System的更多相关文章
- UVA 11078 Open Credit System(扫描 维护最大值)
Open Credit System In an open credit system, the students can choose any course they like, but there ...
- UVa 11549 Open Credit System
题意:给出n个数,找出两个整数a[i],a[j](i < j),使得a[i] - a[j]尽量大 从小到大枚举j,在这个过程中维护a[i]的最大值 maxai晚于ans更新, 可以看这个例子 1 ...
- Open Credit System(UVA11078)
11078 - Open Credit System Time limit: 3.000 seconds Problem E Open Credit System Input: Standard In ...
- 【UVA 11078】BUPT 2015 newbie practice #2 div2-A -Open Credit System
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102419#problem/A In an open credit system, the ...
- Open Credit System
Open Credit SystemInput: Standard Input Output: Standard Output In an open credit system, the studen ...
- UVA Open Credit System Uva 11078
题目大意:给长度N的A1.....An 求(Ai-Aj)MAX 枚举n^2 其实动态维护最大值就好了 #include<iostream> #include<cstdio> u ...
- Uva 11078 简单dp
题目链接:http://uva.onlinejudge.org/external/110/11078.pdf a[i] - a[j] 的最大值. 这个题目马毅问了我,O(n^2)超时,记忆化一下当前最 ...
- UVA - 11400 Lighting System Design
题文: You are given the task to design a lighting system for a huge conference hall. After doing a lot ...
- uva11078 - Open Credit System(动态维护关键值)
这道题使用暴力解法O(n*n)会超时,那么用动态维护最大值可以优化到O(n).这种思想非常实用. #include<iostream> #include<cstdio> #in ...
随机推荐
- 【Unity3D游戏开发】性能优化之spine提高80~90%的效率 (三一)
Spine效率低 Unity项目加载spine动画,经常会出现卡顿的情况,如游戏中瞬间播放一个动画,打开一个带spine动画的界面.尤其是SkeletonRenderer.Awake时,会瞬间出现大量 ...
- left join 等连接查询遇到同名字段覆盖问题
可以在查询时给字段赋别名,但是需要注意以下:*的位置要在最前面,放在其他地方都会出错.这种写法同名覆盖的字段还在,然后在*的后面加上别名字段,已经可以满足所有需求了 SELECT *,r.id as ...
- 回归——线性回归,Logistic回归,范数,最大似然,梯度,最小二乘……
写在前面:在本篇博客中,旨在对线性回归从新的角度考虑,然后引入解决线性回归中会用到的最大似然近似(Maximum Likelihood Appropriation-MLA) 求解模型中的参数,以及梯度 ...
- HDU 5831 Rikka with Parenthesis II(六花与括号II)
31 Rikka with Parenthesis II (六花与括号II) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536 ...
- Monocular Vision
Monocular Vision: a condition in which one eye is blind, seeing with only one eye Binocular Vision: ...
- 3.25考试(hnoi难度)----神奇的一日游
T1怕老婆 有一天hzy9819,来到了一座大城市拥有了属于他自己的一双滑板鞋.但是他还是不满足想要拥有属于自己的一栋楼,他来到了一条宽敞的大道上,一个一个记录着这些楼的层数以方便自己选择. hzy9 ...
- python_way day10 python和其他语言的作用域 、 python2.7多继承和3.5多继承的区别 、 socket 和 socketserver源码(支持并发处理socket,多进程,多线程)
python_way day10 1.python的作用域和其他语言的作用域 2.python2.7多继承和3.5多继承的区别 3.socket和socketserver源码(并发处理socket) ...
- TCP三次握手及四次挥手详细 转
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: ...
- QQ游戏_相关
1. 侍魂: 1.1. ...\QQGame ...\QQGame\samsho2 1.2. C:\Users\xx\AppData\Roaming\Tencent\QQGAME\Download C ...
- hdu3060Area2(任意多边形相交面积)
链接 多边形的面积求解是通过选取一个点(通常为原点或者多边形的第一个点)和其它边组成的三角形的有向面积. 对于两个多边形的相交面积就可以通过把多边形分解为三角形,求出三角形的有向面积递加.三角形为凸多 ...