中位數定義為所有值從小到大排序後排在正中間的那個數,如果值有偶數個,通常取最中間的兩個數值的平均數作為中位數。
現在有n個數,每個數都是獨一無二的,求出每個數在多少個包含其的區間中是中位數。
input
第一行乙個數n(n<=8000)output第二行n個數,0<=每個數<=10^9
n個數,依次表示第i個數在多少包含其的區間中是中位數。input示例
5output示例1 2 3 4 5
1 2 3 2 1
#include #include using namespace std;
const int maxn = 8005;
int count[maxn*2];
int input[maxn];
int n;
int main()
int result = 1;
for (int i = 0; i < n; i++)
else
count[maxn+sum]++;
if (sum == 0)
}sum = 0;
for (int j = i+1; j < n; j++)
else
if (sum == 0)
result += count[maxn-sum];
}cout << result << " ";
}cout << endl;
return 0;
}
中位數計數
problem description 中位數定義為所有值從小到大排序後排在正中間的那個數,如果值有偶數個,通常取最中間的兩個數值的平均數作為中位數。現在有 n 個數,每個數都是獨一無二的,求出每個數在多少個包含其的區間中是中位數。input 多組測試資料 第一行乙個數 n n 8000 第二行 n...
中位數的中位數
參照王曉東的演算法設計 中位數的中位數,即將一串數分成n段,求其排好序了的中間那個數,再把這些所有中位數再求一次中位數。for int i 0 i r p 4 5 i 找中位數的中位數,r p 4即上面所說的n 5 int x lineselect a,p,p r p 4 5,r p 4 10 線性...
HDU 5701 中位數計數
中位數定義為所有值從小到大排序後排在正中間的那個數,如果值有偶數個,通常取最中間的兩個數值的平均數作為中位數。現在有n個數,每個數都是獨一無二的,求出每個數在多少個包含其的區間中是中位數。多組測試資料 第一行乙個數n n 8000 第二行n個數,0 每個數 109 n個數,依次表示第i個數在多少包含...