資源簡介 NOIP2009普及組復賽試題1.多項式輸出(poly.pas/c/cpp)【問題描述】一元 n 次多項式可用如下的表達式表示:1 011 f (x) a x a xn ... a x annn = + + + + , ≠ 0 n a其中,ii a x 稱為i 次項, i a 稱為i 次項的系數。給出一個一元多項式各項的次數和系數,請按照如下規定的格式要求輸出該多項式:1. 多項式中自變量為x,從左到右按照次數遞減順序給出多項式。2. 多項式中只包含系數不為0 的項。3. 如果多項式n 次項系數為正,則多項式開頭不出現“+”號,如果多項式n 次項系數為負,則多項式以“-”號開頭。4. 對于不是最高次的項,以“+”號或者“-”號連接此項與前一項,分別表示此項系數為正或者系數為負。緊跟一個正整數,表示此項系數的絕對值(如果一個高于0 次的項,其系數的絕對值為1,則無需輸出1)。如果x 的指數大于1,則接下來緊跟的指數部分的形式為“x^b”,其中b 為x 的指數;如果x 的指數為1,則接下來緊跟的指數部分形式為“x”;如果x 的指數為0,則僅需輸出系數即可。5. 多項式中,多項式的開頭、結尾不含多余的空格。【輸入】輸入文件名為 poly.in,共有2 行第一行 1 個整數,n,表示一元多項式的次數。第二行有 n+1 個整數,其中第i 個整數表示第n-i+1 次項的系數,每兩個整數之間用空格隔開。【輸出】輸出文件 poly.out 共1 行,按題目所述格式輸出多項式。【輸入輸出樣例 1】poly.in poly.out5100 -1 1 -3 0 10100x^5-x^4+x^3-3x^2+10【輸入輸出樣例2】poly.in poly.out3-50 0 0 1-50x^3+1【數據范圍】1 ≤ n ≤ 100,多項式各次項系數的絕對值均不超過100。2.分數線劃定(score.pas/c/cpp)【問題描述】世博會志愿者的選拔工作正在 A 市如火如荼的進行。為了選拔最合適的人才,A 市對所有報名的選手進行了筆試,筆試分數達到面試分數線的選手方可進入面試。面試分數線根據計劃錄取人數的150%劃定,即如果計劃錄取m名志愿者,則面試分數線為排名第m*150%(向下取整)名的選手的分數,而最終進入面試的選手為筆試成績不低于面試分數線的所有選手。現在就請你編寫程序劃定面試分數線,并輸出所有進入面試的選手的報名號和筆試成績。【輸入】輸入文件名為 score.in。第一行,兩個整數n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中間用一個空格隔開,其中n 表示報名參加筆試的選手總數,m 表示計劃錄取的志愿者人數。輸入數據保證m*150%向下取整后小于等于n。第二行到第 n+1 行,每行包括兩個整數,中間用一個空格隔開,分別是選手的報名號k(1000 ≤ k ≤ 9999)和該選手的筆試成績s(1 ≤ s ≤ 100)。數據保證選手的報名號各不相同。【輸出】輸出文件 score.out。第一行,有兩個整數,用一個空格隔開,第一個整數表示面試分數線;第二個整數為進入面試的選手的實際人數。從第二行開始,每行包含兩個整數,中間用一個空格隔開,分別表示進入面試的選手的報名號和筆試成績,按照筆試成績從高到低輸出,如果成績相同,則按報名號由小到大的順序輸出。【輸入輸出樣例】score.in score.out6 31000 903239 882390 957231 841005 951001 8888 51005 952390 951000 901001 883239 88【樣例說明】m*150% = 3*150% = 4.5,向下取整后為4。保證4 個人進入面試的分數線為88,但因為88有重分,所以所有成績大于等于88 的選手都可以進入面試,故最終有5 個人進入面試。3.細胞分裂(cell.pas/c/cpp)【問題描述】Hanks 博士是BT (Bio-Tech,生物技術) 領域的知名專家。現在,他正在為一個細胞實驗做準備工作:培養細胞樣本。Hanks 博士手里現在有N 種細胞,編號從1~N,一個第i 種細胞經過1 秒鐘可以分裂為Si 個同種細胞(Si 為正整數)。現在他需要選取某種細胞的一個放進培養皿,讓其自由分裂,進行培養。一段時間以后,再把培養皿中的所有細胞平均分入M 個試管,形成M 份樣本,用于實驗。Hanks 博士的試管數M 很大,普通的計算機的基本數據類型無法存儲這樣大的M 值,但萬幸的是,M 總可以表示為m1 的m2 次方,即21M = m m ,其中m1,m2 均為基本數據類型可以存儲的正整數。注意,整個實驗過程中不允許分割單個細胞,比如某個時刻若培養皿中有4 個細胞,Hanks 博士可以把它們分入2 個試管,每試管內2 個,然后開始實驗。但如果培養皿中有5個細胞,博士就無法將它們均分入2 個試管。此時,博士就只能等待一段時間,讓細胞們繼續分裂,使得其個數可以均分,或是干脆改換另一種細胞培養。為了能讓實驗盡早開始,Hanks 博士在選定一種細胞開始培養后,總是在得到的細胞“剛好可以平均分入M 個試管”時停止細胞培養并開始實驗。現在博士希望知道,選擇哪種細胞培養,可以使得實驗的開始時間最早。【輸入】輸入文件名為 cell.in,共有三行。第一行有一個正整數 N,代表細胞種數。第二行有兩個正整數 m1,m2,以一個空格隔開, 21m m 即表示試管的總數M。第三行有 N 個正整數,第i 個數Si 表示第i 種細胞經過1 秒鐘可以分裂成同種細胞的個數。【輸出】輸出文件 cell.out 共一行,為一個整數,表示從開始培養細胞到實驗能夠開始所經過的最少時間(單位為秒)。如果無論 Hanks 博士選擇哪種細胞都不能滿足要求,則輸出整數-1。【輸入輸出樣例 1】cell.in cell.out12 13-1【輸入輸出樣例1 說明】經過 1 秒鐘,細胞分裂成3 個,經過2 秒鐘,細胞分裂成9 個,……,可以看出無論怎么分裂,細胞的個數都是奇數,因此永遠不能分入2 個試管。【輸入輸出樣例 2】cell.in cell.out224 130 122【輸入輸出樣例2 說明】第 1 種細胞最早在3 秒后才能均分入24 個試管,而第2 種最早在2 秒后就可以均分(每試管144/(241)=6 個)。故實驗最早可以在2 秒后開始。【數據范圍】對于 50%的數據,有21m m ≤ 30000。對于所有的數據,有1 ≤N≤ 10000,1 ≤m1 ≤ 30000,1 ≤m2 ≤ 10000,1 ≤ Si ≤ 2,000,000,000。4.道路游戲(game.pas/c/cpp)【問題描述】小新正在玩一個簡單的電腦游戲。游戲中有一條環形馬路,馬路上有n 個機器人工廠,兩個相鄰機器人工廠之間由一小段馬路連接。小新以某個機器人工廠為起點,按順時針順序依次將這n 個機器人工廠編號為1~n,因為馬路是環形的,所以第n 個機器人工廠和第1 個機器人工廠是由一段馬路連接在一起的。小新將連接機器人工廠的這n 段馬路也編號為1~n,并規定第i 段馬路連接第i 個機器人工廠和第i+1 個機器人工廠(1 ≤ i ≤ n-1),第n 段馬路連接第n 個機器人工廠和第1個機器人工廠。游戲過程中,每個單位時間內,每段馬路上都會出現一些金幣,金幣的數量會隨著時間發生變化,即不同單位時間內同一段馬路上出現的金幣數量可能是不同的。小新需要機器人的幫助才能收集到馬路上的金幣。所需的機器人必須在機器人工廠用一些金幣來購買,機器人一旦被購買,便會沿著環形馬路按順時針方向一直行走,在每個單位時間內行走一次,即從當前所在的機器人工廠到達相鄰的下一個機器人工廠,并將經過的馬路上的所有金幣收集給小新,例如,小新在i(1 ≤ i ≤ n)號機器人工廠購買了一個機器人,這個機器人會從i 號機器人工廠開始,順時針在馬路上行走,第一次行走會經過i 號馬路,到達i+1 號機器人工廠(如果i=n,機器人會到達第1 個機器人工廠),并將i 號馬路上的所有金幣收集給小新。游戲中,環形馬路上不能同時存在2 個或者2 個以上的機器人,并且每個機器人最多能夠在環形馬路上行走p 次。小新購買機器人的同時,需要給這個機器人設定行走次數,行走次數可以為1~p 之間的任意整數。當馬路上的機器人行走完規定的次數之后會自動消失,小新必須立刻在任意一個機器人工廠中購買一個新的機器人,并給新的機器人設定新的行走次數。以下是游戲的一些補充說明:1. 游戲從小新第一次購買機器人開始計時。2. 購買機器人和設定機器人的行走次數是瞬間完成的,不需要花費時間。3. 購買機器人和機器人行走是兩個獨立的過程,機器人行走時不能購買機器人,購買完機器人并且設定機器人行走次數之后機器人才能行走。4. 在同一個機器人工廠購買機器人的花費是相同的,但是在不同機器人工廠購買機器人的花費不一定相同。5. 購買機器人花費的金幣,在游戲結束時再從小新收集的金幣中扣除,所以在游戲過程中小新不用擔心因金幣不足,無法購買機器人而導致游戲無法進行。也因為如此,游戲結束后,收集的金幣數量可能為負。現在已知每段馬路上每個單位時間內出現的金幣數量和在每個機器人工廠購買機器人需要的花費,請你告訴小新,經過m 個單位時間后,扣除購買機器人的花費,小新最多能收集到多少金幣。【輸入】輸入文件名為 game.in。第一行 3 個正整數,n,m,p,意義如題目所述。接下來的 n 行,每行有m 個正整數,每兩個整數之間用一個空格隔開,其中第i 行描述了i 號馬路上每個單位時間內出現的金幣數量(1 ≤ 金幣數量≤ 100),即第i 行的第j(1 ≤ j ≤m)個數表示第j 個單位時間內i 號馬路上出現的金幣數量。最后一行,有 n 個整數,每兩個整數之間用一個空格隔開,其中第i 個數表示在i 號機器人工廠購買機器人需要花費的金幣數量(1 ≤ 金幣數量≤ 100)。【輸出】輸出文件 game.out 共一行,包含1 個整數,表示在m 個單位時間內,扣除購買機器人花費的金幣之后,小新最多能收集到多少金幣。【輸入輸出樣例】game.in game.out2 3 21 2 32 3 41 25【數據范圍】對于 40%的數據,2 ≤ n ≤ 40,1 ≤m≤ 40。對于 90%的數據,2 ≤ n ≤ 200,1 ≤m≤ 200。對于 100%的數據,2 ≤ n ≤ 1000,1 ≤m≤ 1000,1 ≤ p ≤m。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫