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 ...
随机推荐
- window server开发
代码部分: public partial class tv : ServiceBase { public tv() { InitializeComponent(); ServiceName = &qu ...
- change the walltime for currently running PBS job (qalter pbs)
qalter jobid -l walltime=X e.g.qalter 377470.manager -l walltime=2222:00:00qalter: Unauthorized Requ ...
- 2.mybatis入门实例 连接数据库进行查询
1.新建项目,添加mybatis和mysql的jar包 2.在mysql中新建表user[id,name,age] CREATE TABLE `users` ( `id` ) NOT NULL aut ...
- STORM_0009_Lifecycle-of-a-topology/拓扑的生命周期
http://storm.apache.org/releases/1.0.1/Lifecycle-of-a-topology.html STORM拓扑的生命周期 本页的内容基于0.7.1代码,后来 ...
- 关于PHP HTML <input type="file" name="img"/>上传图片,图片大小,宽高,后缀名。
在我们的系统中,不免要上传图片,视频等文件,在上传中,需要做的一些判断,文件大小等方面. 注意: 在php.ini 中的post_max_size,upload_max_filesize默认为2M,在 ...
- iOS - Swift NSTimer 定时器
前言 public class NSTimer : NSObject 作用 在指定的时间执行指定的任务. 每隔一段时间执行指定的任务. 1.定时器的创建 当定时器创建完(不用 scheduled 的, ...
- ajax 、ajax的交互模型、如何解决跨域问题
1.ajax是什么? — AJAX全称为“AsynchronousJavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. — 不是一种新技 ...
- openerp安装记录及postgresql数据库问题解决
ubuntu-14.04下openerp安装记录1.安装PostgreSQL 数据库 a.安装 sudo apt-get install postgresql 安装后ubu ...
- Java 文件IO续
文件IO续 File类 用来将文件和文件夹封装成对象 方便对文件和文件夹的属性信息进行操作 File对象可以作为参数传递给流的构造函数 Demo1 File的构造方法 public cla ...
- iOS 开发之 Xcode6 打包生成ipa给测试
Xcode 6正式版Version 6.0.1 (6A317)已经放出Mac AppStore,之前为了体验swift也安装过beta版,但是并没有注意到6系Xcode对于导出ipa的变化,更新正式版 ...