NOIP2019複賽普及

2023-01-13 17:06:03 字數 3161 閱讀 9664

第十二屆全國青少年資訊學奧林匹克

聯賽複賽試題

(noip2006普及組)

競賽時間:2023年11月18日下午1:30-4:30

關於競賽中不同語言使用限制的說明

一.關於使用pascal語言與編譯結果的說明

1.對於pascal語言的程式,當使用ide和fpc編譯結果不一致時,以fpc的編譯結果為準。

2.允許使用數學庫(uses math子句),以及ansistring。但不允許使用編譯開關(最後測試時pascal的範圍檢查開關預設關閉:),也不支援與優化相關的選項。

二.關於c++語言中模板使用的限制說明

1.允許使用的部分:

標準容器中的布林集合,迭代器,串,流。

相關的標頭檔案:

2.禁止使用的部分:

序列:vector,list,deque

序列介面卡:stack, queue, priority_queue

關聯容器:map, multimap, set, multiset

擬容器:valarray

雜湊容器:hash_map, hash_set, hash_multimap, hash_multiset

所有的標準庫演算法

相關標頭檔案:

1.明明的隨機數(

【問題描述】

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數(n≤100),對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成「去重」與「排序」的工作。

【輸入檔案】

輸入檔案 有2行,第1行為1個正整數,表示所生成的隨機數的個數:

n第2行有n個用空格隔開的正整數,為所產生的隨機數。

【輸出檔案】

輸出檔案 也是2行,第1行為1個正整數m,表示不相同的隨機數的個數。第2行為m個用空格隔開的正整數,為從小到大排好序的不相同的隨機數。

【輸入樣例】

1020 40 32 67 40 20 89 300 400 15

【輸出樣例】

815 20 32 40 67 89 300 400

2.開心的金明(

【問題描述】

金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說:「你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n元錢就行」。

今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的n元。於是,他把每件物品規定了乙個重要度,分為5等:用整數1~5表示,第5等最重要。

他還從網際網路上查到了每件物品的**(都是整數元)。他希望在不超過n元(可以等於n元)的前提下,使每件物品的**與重要度的乘積的總和最大。

設第j件物品的**為v[j],重要度為w[j],共選中了k件物品,編號依次為j1,j2,……,jk,則所求的總和為:

v[j1]*w[j1]+v[j2]*w[j2]+ …+v[jk]*w[jk]。(其中*為乘號)

請你幫助金明設計乙個滿足要求的購物單。

【輸入檔案】

輸入檔案 的第1行,為兩個正整數,用乙個空格隔開:

n m

(其中n(<30000)表示總錢數,m(<25)為希望購買物品的個數。)

從第2行到第m+1行,第j行給出了編號為j-1的物品的基本資料,每行有2個非負整數

v p

(其中v表示該物品的**(v<=10000),p表示該物品的重要度(1~5))

【輸出檔案】

輸出檔案只有乙個正整數,為不超過總錢數的物品的**與重要度乘積的總和的最大值(<100000000)。

【輸入樣例】

1000 5

800 2

400 5

300 5

400 3

200 2

【輸出樣例】

3900

的計數法(

【問題描述】

jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的(使用相同個數的字母),英文本母按原先的順序,排在前面的字母小於排在它後面的字母。

我們把這樣的「數字」稱為jam數字。在jam數字中,每個字母互不相同,而且從左到右是嚴格遞增的。每次,jam還指定使用字母的範圍,例如,從2到10,表示只能使用這些字母。

如果再規定位數為5,那麼,緊接在jam數字「bdfij」之後的數字應該是「bdghi」。(如果我們用u、v依次表示jam數字「bdfij」與「bdghi」,則u【輸入檔案】

輸入檔案 有2行,第1行為3個正整數,用乙個空格隔開:

s t w

(其中s為所使用的最小的字母的序號,t為所使用的最大的字母的序號。w為數字的位數,這3個數滿足:1≤s第2行為具有w個小寫字母的字串,為乙個符合要求的jam數字。

所給的資料都是正確的,不必驗證。

【輸出檔案】

輸出檔案 最多為5行,為緊接在輸入的jam數字後面的5個jam數字,如果後面沒有那麼多jam數字,那麼有幾個就輸出幾個。每行只輸出乙個jam數字,是由w個小寫字母組成的字串,不要有多餘的空格。

【輸入樣例】

2 10 5

bdfij

【輸出樣例】

bdghi

bdghj

bdgij

bdhij

befgh

4.數列(

【問題描述】

給定乙個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列,例如,當k=3時,這個序列是:

1,3,4,9,10,12,13,…

(該序列實際上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)

請你求出這個序列的第n項的值(用10進製數表示)。

例如,對於k=3,n=100,正確答案應該是981。

【輸入檔案】

輸入檔案 只有1行,為2個正整數,用乙個空格隔開:

k n(k、n的含義與上述的問題描述一致,且3≤k≤15,10≤n≤1000)。

【輸出檔案】

輸出檔案 為計算結果,是乙個正整數(在所有的測試資料中,結果均不超過2.1*109)。(整數前不要有空格和其他符號)。

【輸入樣例】

3 100

【輸出樣例】981

NOIP2019提高組複賽命題與解題報告

1 能量項鍊 energy.pas c cpp 問題描述 在mars星球上,每個mars人都隨身佩帶著一串能量項鍊。在項鍊上有n顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標記。因為只有這樣,通過吸盤 吸盤...

Pascal衝刺NOIP2019模擬試題與解析 六

衝刺noip2009模擬試題與解析 六 普及組 題目說明 1 檔名 程式名和輸入輸出檔名 必須使用小寫 2 c c 中函式main 0的返回值型別必須是int,程式正常結束時的返回值必須是0 3 每到題目都必須建立資料夾。1 上學路線 題目描述 你所在城市的街道好像乙個棋盤,有a條南北方向的街道和b...

NOIP2019山東賽區初賽預備通知

預備通知 各市科協 教育局 處 計算機學會 聯賽有關單位 學校 全國青少年資訊學奧林匹克聯賽 簡稱noip 是經教育部批准 中國科協主管,由中國計算機學會主辦的一項全國青少年學科競賽活動,通過競賽相互交流,共同提高和從中培養 選拔資訊學優秀後備人才。到目前為止,還沒有收到中國計算計算機學會 ccf ...