想了一天的题目QAQ 毛线数列的最值
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdlib>
using namespace std;
const int maxn=+1e6;
#define ll long long
int n;
int b[maxn],c[maxn];
struct node
{
int date,biaoji;
}Node[maxn];
bool cmp(const node a,const node b)
{
if(a.date==b.date )
return a.biaoji <b.biaoji ;
return a.date <b.date ;
}
int main()
{
int n;
while(cin>>n)
{
memset(b,,sizeof(b));
memset(c,,sizeof(c));
ll ma=-;
for(int i=;i<=n;i++)
{
cin>>Node[i].date ;
Node[i].biaoji=i;
}
sort(Node+,Node+n+,cmp);
b[n]=c[n]=Node[n].biaoji ;
for(int i=n-;i>-;i--)
{
if(Node[i].biaoji >b[i+]) b[i]=Node[i].biaoji ;
else
b[i]=b[i+];
if(Node[i].biaoji <c[i+]) c[i]=Node[i].biaoji ;
else
c[i]=c[i+];
} for(int i=;i<=n-;i++)
{
ll temp=max(abs(Node[i].biaoji -b[i+]),abs(Node[i].biaoji -c[i+]));
ma=max(ma,Node[i].date*temp);
}
cout<<ma<<endl;
}
}
毛线数列最值
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 195 Accepted Submission(s) : 11
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
Input
Output
Sample Input
4
1 2 2 2
Sample Output
4 首先这题题意很简单就是求max(min(a,b)*abs(pos_a-pos_b);
如果我们直接两个for循坏的话,时间复杂度是0(n^2),会超时的,这里有一种时间复杂度是o(n)的方法;
我们先把这n个数据排序,从大到小,但是下标不变;比如
1 4 3 2
1 2 3 4 1 2 3 4
1 4 3 2
这样排好后,直接从i=1遍历到i=n-1;date[i]*(个数差),因为date已经从小到大排序了,所以只要考虑后面的大小,所以我们就要找第i个数据后的个数最大值和最小值就好,慢慢理解代码
想了一天的题目QAQ 毛线数列的最值的更多相关文章
- 如果你想设置无人自动升级,我们推荐你将这个值修改为security,它会告诉 yum 仅仅升级修复安全问题的软件包。
定期升级你的 CentOS 系统,是所有系统安全中最重要的措施之一.如果你不使用最新的安全补丁升级你的操作系统软件包,你将会让你的机器很容易被攻击. 如果你管理者多个 CentOS 机器,手动升级系统 ...
- 九度oj 题目1496:数列区间
题目描述: 有一段长度为n(1<=n<=1000000)的数列,数列中的数字从左至右从1到n编号.初始时数列中的数字都是0. 接下来我们会对其进行m(1<=m<=100000) ...
- QAQ OI生涯の最后一个月
QAQ 总觉得自己要做点什么 可是并不知道去做些什么 QAQ 先挖一些坑吧,不管怎么样,把这些坑填完估计NOI也就无憾了 1.读完13-16的论文 QAQ 2.做完12-16的POI QAQ 3.做 ...
- STL库学习笔记(待补充QAQ
几百年前就说要学STL了然后现在还没动呢QAQ总算还是克服了懒癌决定学下QAQ 首先港下有哪几个vector listset map stack queue,大概就这些? 然后因为有几个基本操作每个都 ...
- CF 题目选做
写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...
- 【南阳OJ分类之语言入门】80题题目+AC代码汇总
小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代 ...
- 2019清明期间qbxt培训qaq
4.4下午:矩阵qwq part1矩阵乘法: 概念: 一个m×p的矩阵A 乘 一个p×n的矩阵B 得到一个矩阵一个m×n的矩阵AB 其中: 矩阵乘法满足结合律.分配率,不满足交换律 矩阵乘法—solu ...
- NOIP练习赛题目1
有些题目可能没做,如计算几何.恶心模拟. 高级打字机 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 早苗入手了最新的高级打字机 ...
- C基础 旋转数组查找题目
前言 - 引言 题目: 一类有序数组旋转查值问题. 例如: 有序数组 [ , , , , , , , , ] 旋转后为 [ , , , , , , , , ] 如何从中找出一个值索引, not fou ...
随机推荐
- BDC备忘
更新模式,有下列可选值(更新模式常用的是S) "A" 异步更新.被调用程序的更新按照没有指定 COMMIT WORK 语句和 AND WAIT 附加的方式执行. 也 ...
- js点击获取标签里面id属性
<html xmlns="http://www.w3.org/1999/xhtml"> <head > <title></title> ...
- opendaylight安装
OpenDaylight安装 环境 jdk-1.8 maven 环境配置安装 Java环境 查看Java环境 java -version 安装jdk-1.8 yum install java-1.8 ...
- JavaScript编码加密
网上看到的加密方法: JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,deco ...
- Redis数据库 : python与java操作redis
redis 包 from redis import * 连接: r = StrictRedis(host='localhost', port='6379') 读写:r.set('key','value ...
- 【TP5.1】HTML标签自动转义,导致CKEditor保存内容无法正常显示!
问题:使用Thinkphp5.1 开发的时候显示CKEditor保存的内容不符合预期. 希望的样子,肯定是不显示<p><b>等标签,而是下面的样子. 因为刚开始使用TP5.1和 ...
- react native "Unable to resolve module `AccessibilityInfo`
error: bundling failed: "Unable to resolve module `AccessibilityInfo` from `/Users/apple/Websto ...
- laravel通过make auth实现手机号登录
首先按照Laravel的教程,安装认证系统. php artisan make:auth php artisan migrate laravel已经安装完成认证系统,默认注册和登录都是用邮箱. 如果想 ...
- dategrip破解
https://blog.csdn.net/weixin_39428938/article/details/81078806
- MongoDB的Go语言驱动注意点
当我们定义一个struct用来和集合对应时,要注意结构体的字段首字母应该大写,不然不可见. 通过`bson:"name"`这种方式可以定义MongoDB中集合的字段名,如果不定义, ...