hdoj 5805 NanoApe Loves Sequence(模拟)
来源:互联网 发布:淘宝客服售后工作流程 编辑:程序博客网 时间:2024/06/05 10:10
官方题解:
求出前i个数里相邻差值的最大值fi,i到n里相邻差值的最大值gi,那么
ans=∑i=1nmax(∣Ai−1−Ai+1∣,fi−1,gi+1)。
时间复杂度O(n)。
代码:
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int maxn = 1e5+5;int a[maxn], f[maxn], g[maxn], n, t;int main(void){ cin >> t; while(t--) { scanf("%d", &n); memset(f, 0, sizeof(f)); memset(g, 0, sizeof(g)); for(int i = 1; i <= n; i++) scanf("%d", &a[i]); for(int i = 2; i <= n; i++) f[i] = max(f[i-1], abs(a[i]-a[i-1])); for(int i = n-1; i >= 1; i--) g[i] = max(g[i+1], abs(a[i]-a[i+1])); ll ans = g[2]+f[n-1]; for(int i = 2; i <= n-1; i++) ans += max(max(abs(a[i-1]-a[i+1]), f[i-1]), g[i+1]); printf("%lld\n", ans); } return 0;}
NanoApe Loves Sequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)Total Submission(s): 1369 Accepted Submission(s): 533
Problem Description
NanoApe, the Retired Dog, has returned back to prepare for the National Higher Education Entrance Examination!
In math class, NanoApe picked up sequences once again. He wrote down a sequence withn numbers on the paper and then randomly deleted a number in the sequence. After that, he calculated the maximum absolute value of the difference of each two adjacent remained numbers, denoted as F .
Now he wants to know the expected value ofF , if he deleted each number with equal probability.
In math class, NanoApe picked up sequences once again. He wrote down a sequence with
Now he wants to know the expected value of
Input
The first line of the input contains an integer T , denoting the number of test cases.
In each test case, the first line of the input contains an integern , denoting the length of the original sequence.
The second line of the input containsn integers A1,A2,...,An , denoting the elements of the sequence.
1≤T≤10, 3≤n≤100000, 1≤Ai≤109
In each test case, the first line of the input contains an integer
The second line of the input contains
Output
For each test case, print a line with one integer, denoting the answer.
In order to prevent using float number, you should print the answer multiplied byn .
In order to prevent using float number, you should print the answer multiplied by
Sample Input
141 2 3 4
Sample Output
6
Source
BestCoder Round #86
0 0
- hdoj 5805 NanoApe Loves Sequence(模拟)
- hdoj-5805-NanoApe Loves Sequence
- 【HDU】5805 - NanoApe Loves Sequence(模拟)
- HDU 5805 NanoApe Loves Sequence(水模拟)
- (模拟/线段树)HDU - 5805 NanoApe Loves Sequence
- hdoj5805 NanoApe Loves Sequence && hdoj 5806 NanoApe Loves Sequence Ⅱ
- HDU 5805 NanoApe Loves Sequence(水~)
- HDU-5805-NanoApe Loves Sequence(水题)
- HDOJ 5806 NanoApe Loves Sequence Ⅱ
- hdoj-5806-NanoApe Loves Sequence Ⅱ
- HDU 5805 NanoApe Loves Sequence
- HDU 5805:NanoApe Loves Sequence
- hdu 5805 NanoApe Loves Sequence
- HDU 5805 NanoApe Loves Sequence
- HDU 5805 NanoApe Loves Sequence
- HDU 5805 NanoApe Loves Sequence
- HDU 5805 - NanoApe Loves Sequence
- HDU 5805 NanoApe Loves Sequence
- 字符串的一些方法和例子
- gtk3 动态显示时间
- 播放数组中动画升级版,使用更方便
- 阿里巴巴矢量图标库使用
- C语言排序小练习
- hdoj 5805 NanoApe Loves Sequence(模拟)
- 内耗
- 一台电脑上部署多个tomcat
- Redis和Memcache对比及选择
- 提高开发效率之“每日时间管理”
- Ubuntu16.04设置屏幕分辨率
- Linux中检索文件 grep
- Android 自定义View总结 —— onMeasure()
- web前端之锋利的jQuery九:jQuery插件的使用(模态窗口、cookie、UI)