Sort 九度教程第11題

2021-09-11 15:56:34 字數 806 閱讀 8443

時間限制:1 秒 記憶體限制:128 兆 特殊判題:否

題目描述:

給你n個整數,請按從大到小的順序輸出其中前m大的數。

輸入:每組測試資料有兩行,第一行有兩個數n,m(0#include using namespace std;

bool cmp(int x,int y)

int main()

//初始化,將每個數字都標記為未出現

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

for (int i = 500000;i >= -500000;i --) }}

}return 0;

}由於輸入資料**現了負數,不能直接把輸入資料當做陣列下標來訪問陣列元素,而是將每乙個輸入的資料都加上乙個固定的偏移值,使輸入資料的[-500000,500000]區間被對映到陣列下標的[0,1000000]區間。

對輸入數字做了「各不相同」的限定,試問假如去除這一限定,使輸入數字可能存在重複,該hash方法依舊可用,需對**做部分改動,如下所示:

#include #define offset 500000 //偏移量,用於補償實際數字與陣列下標之間偏移

int hash[1000001]; //hash陣列,記錄每個數字是否出現,不出現為0,出現後被標記成1

int main () //初始化,將每個數字都標記為未出現

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

for (int i = 500000;i >= -500000;i --) }}

}return 0;

}

Day of week 九度教程第7題

其大意為,輸入乙個日期,要求輸出該日期為星期幾。星期幾是以七為週期迴圈的,那麼只需要知道 1.今天是星期幾 2.今天和所給定的那天相隔幾天。利用其對7求餘數便可以知道所給定的那天是星期幾。include include define isleapyeap x x 100 0 x 4 0 x 400 ...

a b 九度教程第60題

這是一例典型的考察高精度整數的題,其輸入非常巨大 1000 位 不能使用任何整數型別來直接儲存它。使用c c 首先明確高精度整數的儲存形式,常用如下結構體來儲存乙個高精度整數 struct biginteger 其中digit陣列用來儲存大整數中每若干位的數字,這裡暫且使用每4位為乙個單位儲存,si...

採藥 九度教程第 101 題

首先將這個問題抽象 有乙個容量為 v 的揹包,和一些物品。這些物品分別有兩個屬性,體積 w 和價值 v,每種物品只有乙個。要求用這個揹包裝下價值盡可能多的物品,求該最大價值,揹包可以不被裝滿。因為最優解中,每個物品都有兩種可能的情況,即在揹包中或者不存在 揹包中有 0 個該物品或者 1 個 所以把這...