51Nod 1682 中位數計數

2021-07-16 08:06:20 字數 1198 閱讀 2222

acm模版

這裡,我們可以分析得到,符合規則的區間有四種形式,分別是:

//      i       (1)

// j---i (2)

// i---j (3)

// j'--i--j" (4)

而這裡,第一種不用過多處理,就是1;第2種和第3種類似,所以,我們需要求出來i之前的num的匹配情況,和i之後的num的匹配情況;而第四種要求的是,在第2種和第3種的基礎上,進行匹配,匹配成功則符合第4種,這樣子,我們把四種情況的結果加在一起也就是答案了。

當然,我們還需要列舉每乙個i。

#include 

#include

#include

#define maxsize 8008

int num[maxsize];

int arr[maxsize];

int cnt[maxsize];

int sum[maxsize * 2];

// 輸入int

void scanfdiy(int *ret)

// 符合規則的區間分為以下幾種

// i (1)

// j---i (2)

// i---j (3)

// j'--i--j" (4)

int main(int argc, const

char * argv)

for (int i = 1; i <= n; i++)

}// 存num[i]右邊區間比num[i]大小情況

for (int j = i + 1; j <= n; j++)

if (arr[j] == 0) // 為0時,從i到j區間符合規則

}cnt[i] = res + 1; //此處+1的情況為(1)

}for (int i = 1; i < n; i++)

printf("%d\n", cnt[n]);

}return

0;}

51NOD 1682 中位數計數

1682 中位數計數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 收藏 關注 中位數定義為所有值從小到大排序後排在正中間的那個數,如果值有偶數個,通常取最中間的兩個數值的平均數作為中位數。現在有n個數,每個數都是獨一無二的,求出每個數在多少個包含其的區間中是中...

51Nod 1682 中位數計數

中位數定義為所有值從小到大排序後排在正中間的那個數,如果值有偶數個,通常取最中間的兩個數值的平均數作為中位數。現在有n個數,每個數都是獨一無二的,求出每個數在多少個包含其的區間中是中位數。input 第一行乙個數n n 8000 第二行n個數,0 每個數 10 9 output n個數,依次表示第i...

51nod 1682 中位數計數

1682 中位數計數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 中位數定義為所有值從小到大排序後排在正中間的那個數,如果值有偶數個,通常取最中間的兩個數值的平均數作為中位數。現在有n個數,每個數都是獨一無二的,求出每個數在多少個包含其的區間中是中位數。inp...