[xdoj]1299&1300朱神的烦恼 朱神的序列
http://acm.xidian.edu.cn/problem.php?id=1299
1.第一道题简单的很,数据范围最多只有1e4,对于数组中的每一个元素进行两个for循环,i=0;i<n;i++ j=i+1;j<n;j++这样就写了一个O(n²)的算法,1e8完全可以在1s内解决。
http://acm.xidian.edu.cn/problem.php?id=1300
第二题就没这么简单了,扩大了数据范围到1e5,这样的话你再写循环1e10肯定超时。这就要想出新的办法。后缀最小值。
先预处理出后缀最小值edMin数组,然后通过ans=max(ans,ans-edMin[i])就可以做出求一个序列中的第i号序列和后面最小的序列值的差的操作,利用迭代求出最小值即是答案。
对于这两道题,都有一个共同特别容易错的点,那就是ans一开始设为0肯定会错,因为有可能i后的数字全都比i大,所以ans要设为负的最大值-1e9-7就可以。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+;
int a[maxn];
int edMin[maxn];
int min(int a, int b)
{
return a<=b ? a : b;
}
int max(int a, int b)
{
return a>= b ? a : b;
}
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int n;
scanf("%d", &n);
int i;
for (i = ; i < n; i++)
{
scanf("%d", &a[i]);
}
for (i = n - ; i >= ; i--)
{
if (i == n - )
{
edMin[i] = a[i];
}
else
{
edMin[i] = min(a[i], edMin[i + ]);
}
}
int ans = -;
/*for (i = 0; i < n; i++)
{
printf("%d ", edMin[i]);
}*/
for (i = ; i < n-; i++)
{
ans = max(ans,a[i] - edMin[i+]);
}
printf("%d\n",ans);
}
}
[xdoj]1299&1300朱神的烦恼 朱神的序列的更多相关文章
- “吃神么,买神么”的第一个Sprint计划(结束)
“吃神么,买神么”项目Sprint计划 ——5.28 星期四(第八天)第一次Spring计划结束 第一阶段Spring的目标以及完成情况: 时间:5月21号~5月28号(7天) 目标:第一阶段结 ...
- “吃神么,买神么”的第二个Sprint计划(总结)
“吃神么,买神么”项目Sprint计划 ——5.28 星期四(第八天)第一次Spring计划结束 第一阶段Spring的目标以及完成情况: 时间:5月21号~5月28号(7天) 目标:第二阶段主 ...
- “吃神么,买神么”的第二个Sprint计划(计划过程内容)
“吃神么,买神么”项目Sprint计划 ——6.1(第二天)立会内容与进度 团队组员各自任务: 陈键.吴舒婷:继续完善前台设局与布局 林欢雯.冯美欣:开展后台的界面的设计与布局 任务的进度: 陈键. ...
- “吃神么,买神么”的第二个Sprint计划
“吃神么,买神么”的第二个Sprint计划 一.现状 前台布局设计完成一个主页,可以让浏览者了解我们网站的功能,这是第一个阶段的Spring完成的事情.由于没有实际的功能体现,所以第二阶段开始 ...
- “吃神么,买神么”的第一个Sprint计划(第七天)
“吃神么,买神么”项目Sprint计划 ——5.25 星期一(第五天)立会内容与进度 摘要: 所有的部件都完成,在贴每个人负责的部件时发现很多问题,很多网页布局的运用不熟练,一部分的div会跑位置~ ...
- “吃神么,买神么”的第一个Sprint计划(第六天)
“吃神么,买神么”项目Sprint计划 ——5.26 星期二(第六天)立会内容与进度 摘要:logo最终出来了,,背景也出来了,可以开始将完成的部分放到同一个文件中,决定剩下的时间把昨晚的部分贴上去 ...
- “吃神么,买神么”的第一个Sprint计划(第五天)
“吃神么,买神么”项目Sprint计划 ——5.25 星期一(第五天)立会内容与进度 摘要:logo2出来了,修改过不一样的风格,组内总体评价可以,但是颜色要改,色调没注意,统一决定改成与背景色一致 ...
- “吃神么,买神么”的第一个Sprint计划(第四天)
“吃神么,买神么”项目Sprint计划 ——5.24 星期日(第四天)立会内容与进度 摘要:logo做出来了,但是在立会展示时遭到反对,不合格,重新设计.(附上失败的logo图) 目前搜索栏出来了, ...
- “吃神么,买神么”的第一个Sprint计划(第三天)
“吃神么,买神么”项目Sprint计划 ——5.23 星期六(第三天)立会内容与进度 摘要:今天的立会主要是报告进度以及遇到的困难. 进度:logo正在进行中,其他基本没什么问题.都确定要做出来的大 ...
随机推荐
- LUA 语言易混点
--代码: tab1 = { key1 = "val1", key2 = "val2","val2", "val3" , ...
- sql join 语句的小总结
CREATE TABLE Persons ( id INT PRIMARY KEY, LastName CHAR() NOT NULL, FirstName VARCHAR (), address V ...
- [No0000D9]删除指定文件夹.bat改命或合并文件
set /p 目录=目录,拖入= rd /s /q %目录% ::ren *.txt *.html ::copy /B *.html aaa.txt pause
- tensorflow模型在实际上线进行预测的时候,使用CPU工作
最近已经训练好了一版基于DeepLearning的文本分类模型,TextCNN原理.在实际的预测中,如果默认模型会优先选择GPU那么每一次实例调用,都会加载GPU信息,这会造成很大的性能降低. 那么, ...
- Java 输入/输出——Java虚拟机读写其它进程的数据
使用 Runtime对象的exec()方法可以运行平台上的其它程序,该方法产生一个Process对象,Process对象代表由该Java程序启动的子进程.Process类提供了如下三个方法,用于让程序 ...
- [daily][centos][iptables][firewalld] firewalld的初步了解
CentOS7中默认使用firewalld代替了iptables . 接下来将对firewalld, 做一些初步的了解. 首先读一下, redhat的文档: https://access.redhat ...
- python 查找函数的用法
python的导入模块:python解释器先检查当前目录下的导入的模块,如果没有找到再检查sys模块中path中的变量(import sys,sys.path),如果没有找到,就会发生错误.可以使用脚 ...
- 动态SQL详解
动态SQL 在之前用户所编写的PL/SQL程序时有一个最大的特点:就是所操作的数据库对象(例如:表)必须存在,否则创建的子程序就会出问题,而这样的操作在开发之中被称为静态SQL操作,而动态SQL操作可 ...
- 深度剖析fork()的原理及用法
我们都知道通过fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为父进程.而子进程继承了父进程的整个地址空间,其中包括了进程上下文,堆栈地址,内存 ...
- Java+selenium 如何定位下拉框select
场景:需要进行下拉选择定位元素. 一.select菜单 select也是比较常见的,selenium封装了以下方法, 创建select WebElement selector = dr ...