2020 CCF CSP J2 直播獲獎

2022-07-09 17:39:12 字數 2218 閱讀 9481

noi2130 即將舉行。

為了增加觀賞性,ccf 決定逐一評出每個選手的成績,並直播即時的獲獎分數線。

本次競賽的獲獎率為 w%,即當前排名前 w% 的選手的最低成績就是即時的分數線。

更具體地,若當前已評出了 p 個選手的成績,則當前計畫獲獎人數為 max(1,⌊p×w%⌋),其中 w 是獲獎百分比,⌊x⌋ 表示對 x 向下取整,max(x,y) 表示 x 和 y 中較大的數。

如有選手成績相同,則所有成績並列的選手都能獲獎,因此實際獲獎人數可能比計畫中多。

作為評測組的技術人員,請你幫 ccf 寫乙個直播程式。

輸入格式

第 1 行兩個正整數 n,w。分別代表選手總數與獲獎率。

第 2 行有 n 個非負整數,依次代表逐一評出的選手成績。

輸出格式

只有一行,包含 n 個非負整數,依次代表選手成績逐一評出後,即時的獲獎分數線。

相鄰兩個整數間用乙個空格分隔。

資料範圍

測試點編號 n

1∼3 =10

4∼6 =500

7∼10 =2000

11∼17 =10000

18∼20 =100000

對於所有測試點,每個選手的成績均為不超過 600 的非負整數,獲獎百分比 w 是乙個正整數且 1≤w≤99。

在計算計畫獲獎人數時,如用浮點型別的變數(如 c/c++中的 float、double,pascal 中的 real、double、extended 等)儲存獲獎比例 w,則計算 5×60% 時的結果可能為 3.000001,也可能為 2.999999,向下取整後的結果不確定。因此,建議僅使用整型變數,以計算出準確值。

輸入樣例1:

10 60

200 300 400 500 600 600 0 300 200 100

輸出樣例1:

200 300 400 400 400 500 400 400 300 300

樣例1解釋

已評測選手人數 1 2 3 4 5 6 7 8 9 10

計畫獲獎人數 1 1 1 2 3 3 4 4 5 6

已評測選手的分 200 300 400 500 600 600 600 600 600 600

數從高到低排列 200 300 400 500 600 600 600 600 600

200 300 400 500 500 500 500 500

200 300 400 400 400 400 400

200 300 300 300 300 300

200 200 300 300 300

0 200 200 200

0 200 200

0 100

0注意,在第 9 名選手的成績評出之後,計畫獲獎人數為 5 人,但由於有並列,因此實際會有 6 人獲獎。

輸入樣例2:

10 30

100 100 600 100 100 100 100 100 100 100

輸出樣例2:

100 100 600 600 600 600 100 100 100 100

思路:維護區間裡面的值 得到分數合格的 使用線段樹 直接樹上二分來找

#include #include using namespace std;

const int n = 2401; // 四倍節點數

int n, w;

struct tree

tr[n];

void pushup(int u)

void build(int u, int l, int r)

void modify(int u, int x)//樹上二分

}int kth(int u, int k)

int main()

return 0;

}

第二種:

暴力列舉 開乙個陣列紀錄該分數有多少人 每一次插入 紀錄在陣列裡面 然後遍歷一次 從 600 - 0 開始列舉 時間複雜度(600 * n)

#include #include #include using namespace std;

const int n = 605;

int score[n];

int p , w;

int main()}}

return 0;

}

題解 SBCOI2020 一直在你身旁

題目傳送門 給出乙個長度為 n 的單調不減的序列,每次可以選出乙個點,產生貢獻 a k 我們可以得知我們需要找到的數是否大於 k 問找到要找到的數最小花費。n le 7100 theta n 3 的 text 顯然,可以設 f 表示答案在 l,r 區間時找到答案最小貢獻。可以得到轉移式 f min ...

加密2 華東師範 2020

加密2 time limit 1000ms memory limit 30000kb total submit 145 accepted 83 description 對乙個整數 32位無符號整數 進行規則如下的加密 1.低16位和高16位互換 2.此時的低16位按位取反 3.此時的高16位與低16...

加密2 華東師範 2020

加密2 time limit 1000ms memory limit 30000kb total submit 145 accepted 83 description 對乙個整數 32位無符號整數 進行規則如下的加密 1.低16位和高16位互換 2.此時的低16位按位取反 3.此時的高16位與低16...