NanoApe Loves Sequence-待解决
2016-08-07 10:28
281 查看
NanoApe Loves Sequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)Total Submission(s): 440 Accepted Submission(s): 205
[align=left]Problem Description[/align]
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 with n
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 of F
, if he deleted each number with equal probability.
[align=left]Input[/align]
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 integer n
, denoting the length of the original sequence.
The second line of the input contains n
integers A1,A2,...,An
, denoting the elements of the sequence.
1≤T≤10, 3≤n≤100000, 1≤Ai≤109
[align=left]Output[/align]
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 by n
.
[align=left]Sample Input[/align]
1
4
1 2 3 4
[align=left]Sample Output[/align]
6
[align=left]Source[/align]
BestCoder Round #86
[align=left]Recommend[/align]
wange2014 | We have carefully selected several similar problems for you: 5808 5807 5806 5805 5804
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { int t; int n; int cha=0; int cha2=0; int a[100005]={0}; int maxx1; int first; int maxx2; int second; int maxx3; int third; int sum=0; scanf("%d",&t); for(int z=0;z<t;z++){ sum=0; maxx1=0; maxx2=0; maxx3=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); if(i!=0){ cha=abs(a[i]-a[i-1]); if(maxx1<cha){ maxx1=cha; first=i; } } } for(int i=1;i<n;i++){ cha=abs(a[i]-a[i-1]); if(maxx2<cha){ if(maxx2<=maxx1){ if(i==first){ continue; }else{ maxx2=cha; second=i; } } } } for(int i=1;i<n;i++){ cha=abs(a[i]-a[i-1]); if(maxx2<cha){ if(maxx3<=maxx1&&maxx3<=maxx2){ if(i==first||i==second){ continue; }else{ maxx3=cha; third=i; } } } } for(int i=1;i<n-1;i++){ cha2=abs(a[i+1]-a[i-1]); if(maxx1<=cha2){ sum+=cha2; } if(maxx1>cha2){ if(i==first&&i+1==second||i==second&&i+1==first){ if(maxx3!=0){ if(maxx3>=cha2){ sum+=maxx3; }else{ sum+=cha2; } }else{ sum+=cha2; } } if(i==first||i==first-1){ if(cha2<=maxx2){ sum+=maxx2; }else{ sum+=cha2; } }else{ sum+=maxx1; } } } if(first==1){ sum+=maxx2; sum+=maxx1; } if(first==n-1){ sum+=maxx2; sum+=maxx1; } if(first!=1&&first!=n-1){ sum+=(2*maxx1); } printf("%d\n",sum); } return 0; }
相关文章推荐
- bestcoder #86 第三题 NanoApe Loves Sequence Ⅱ hdu 5806
- hdu5805 NanoApe Loves Sequence 线段树 or 直接扫描
- HDU 5805 NanoApe Loves Sequence
- hdu-5805 NanoApe Loves Sequence(线段树+概率期望)
- HDU 5806 BestCoder Round #86 NanoApe Loves Sequence Ⅱ (尺取法)
- hdu NanoApe Loves Sequence
- hdu:5805:前缀和后缀NanoApe Loves Sequence
- hdu 5806 NanoApe Loves Sequence Ⅱ
- hdu 5086 NanoApe Loves Sequence 【二分查找】
- NanoApe Loves Sequence Ⅱ(尺取法)
- HDU 5805 NanoApe Loves Sequence(水模拟)
- HDU 5805 - NanoApe Loves Sequence (BestCoder Round #86)
- HDOJ 5806 NanoApe Loves Sequence Ⅱ
- (模拟/线段树)HDU - 5805 NanoApe Loves Sequence
- HDU 5805 NanoApe Loves Sequence(ST 表 or 预处理)
- Best Coder #86 1002 NanoApe Loves Sequence
- hdu_5806_NanoApe Loves Sequence Ⅱ(双指针)
- hdoj5805 NanoApe Loves Sequence && hdoj 5806 NanoApe Loves Sequence Ⅱ
- (尺取法)HDU - 5806 NanoApe Loves Sequence Ⅱ
- HDU 5806 NanoApe Loves Sequence Ⅱ(前缀和)