|
藍橋杯練習題集 |
一派掌門 二十級 |
基礎練習 十六進制轉十進制 時間限制:1.0s 內存限制:512.0MB 問題描述 從鍵盤輸入一個不超過8位的正的十六進制數字符串,將它轉換為正的十進制數後輸出。 註:十六進制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。 樣例輸入 FFFF 樣例輸出 65535
|
一派掌門 二十級 |
基礎練習 十進制轉十六進制 時間限制:1.0s 內存限制:512.0MB 問題描述 十六進制數是在程序設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號,分別表示十進制數的0至15。十六進制的計數方法是滿16進1,所以十進制數16在十六進制中是10,而十進制的17在十六進制中是11,以此類推,十進制的30在十六進制中是1E。 給出一個非負整數,將它表示成十六進制的形式。 輸入格式 輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647 輸出格式 輸出這個整數的16進制表示 樣例輸入 30 樣例輸出 1E
|
|
一派掌門 二十級 |
基礎練習 特殊迴文數 時間限制:1.0s 內存限制:512.0MB 問題描述 123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。 輸入一個正整數n, 編程求所有這樣的五位和六位十進制數,滿足各位數字之和等於n 。 輸入格式 輸入一行,包含一個正整數n。 輸出格式 按從小到大的順序輸出滿足條件的整數,每個整數佔一行。 樣例輸入 52 樣例輸出 899998 989989 998899 數據規模和約定 1<=n<=54。
|
|
一派掌門 二十級 |
基礎練習 迴文數 時間限制:1.0s 內存限制:512.0MB 問題描述 1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,編程求所有這樣的四位十進制數。 輸出格式 按從小到大的順序輸出滿足條件的四位十進制數。
|
|
一派掌門 二十級 |
基礎練習 特殊的數字 時間限制:1.0s 內存限制:512.0MB 問題描述 153是一個非常特殊的數,它等於它的每位數字的立方和,即153=1*1*1+5*5*5+3*3*3。編程求所有滿足這種條件的三位十進制數。 輸出格式 按從小到大的順序輸出滿足條件的三位十進制數,每個數佔一行。
|
|
一派掌門 二十級 |
基礎練習 查找整數 時間限制:1.0s 內存限制:256.0MB 問題描述
給出一個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。 輸入格式
第一行包含一個整數n。
第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。
第三行包含一個整數a,為待查找的數。 輸出格式 如果a在數列中出現了,輸出它第一次出現的位置(位置從1開始編號),否則輸出-1。 樣例輸入 6 1 9 4 8 3 9 9 樣例輸出 2 數據規模與約定 1 <= n <= 1000。
|
|
一派掌門 二十級 |
基礎練習 數列特徵 時間限制:1.0s 內存限制:256.0MB 問題描述
給出n個數,找出這n個數的最大值,最小值,和。 輸入格式
第一行為整數n,表示數的個數。
第二行有n個數,為給定的n個數,每個數的絕對值都小於10000。 輸出格式 輸出三行,每行一個整數。第一行表示這些數中的最大值,第二行表示這些數中的最小值,第三行表示這些數的和。 樣例輸入 5 1 3 -2 4 5 樣例輸出 5 -2 11 數據規模與約定 1 <= n <= 10000。
|
|
一派掌門 二十級 |
算法訓練 P1103
時間限制:1.0s 內存限制:256.0MB
編程實現兩個複數的運算。設有兩個複數 和 ,則他們的運算公式為:
要求:(1)定義一個結構體類型來描述複數。
(2)複數之間的加法、減法、乘法和除法分別用不用的函數來實現。
(3)必須使用結構體指針的方法把函數的計算結果返回。
說明:用戶輸入:運算符號(+,-,*,/) a b c d.
輸出:a+bi,輸出時不管a,b是小於0或等於0都按該格式輸出,輸出時a,b都保留兩位。
輸入:
- 2.5 3.6 1.5 4.9
輸出:
1.00+-1.30i
|
|
一派掌門 二十級 |
算法訓練 Lift and Throw
時間限制:3.0s 內存限制:256.0MB
問題描述 給定一條標有整點(1, 2, 3, ...)的射線. 定義兩個點之間的距離為其下標之差的絕對值.
Laharl, Etna, Flonne一開始在這條射線上不同的三個點, 他們希望其中某個人能夠到達下標最大的點.
每個角色只能進行下面的3種操作, 且每種操作不能每人不能進行超過一次.
1.移動一定的距離
2.把另一個角色高舉過頭
3.將舉在頭上的角色扔出一段距離
每個角色有一個movement range參數, 他們只能移動到沒有人的位置, 並且起點和終點的距離不超過movement range.
如果角色A和另一個角色B距離為1, 並且角色B沒有被別的角色舉起, 那麼A就能舉起B. 同時,
B會移動到A的位置,B原來所佔的位置變為沒有人的位置. 被舉起的角色不能進行任何操作, 舉起別人的角色不能移動.同時,
每個角色還有一個throwing range參數, 即他能把舉起的角色扔出的最遠的距離. 注意, 一個角色只能被扔到沒有別的角色佔據的位置.
我們認為一個角色舉起另一個同樣舉起一個角色的角色是允許的. 這種情況下會出現3個人在同一個位置的情況. 根據前面的描述,
這種情況下上面的兩個角色不能進行任何操作, 而最下面的角色可以同時扔出上面的兩個角色. 你的任務是計算這些角色能夠到達的位置的最大下標,
即最大的數字x, 使得存在一個角色能夠到達x.輸入格式 輸入共三行, 分別為Laharl, Etna, Floone的信息.
每一行有且僅有3個整數, 描述對應角色的初始位置, movement range, throwing range.
數據保證3個角色的初始位置兩兩不相同且所有的數字都在1到10之間.</div>輸出格式 僅有1個整數, 即Laharl, Etna, Flonne之一能到達的最大距離.樣例輸入9 3 3
4 3 1
2 3 3樣例輸出15樣例說明 一開始Laharl在位置9, Etna在位置4, Flonne在位置2.
首先, Laharl移動到6.
然後Flonne移動到位置5並且舉起Etna.
Laharl舉起Flonne將其扔到位置9.
Flonne把Etna扔到位置12.
Etna移動到位置15.
|
|
一派掌門 二十級 |
算法訓練 Multithreading 時間限制:1.0s 內存限制:256.0MB 問題描述 現有如下一個算法: repeat ni times yi := y y := yi+1 end repeat 令n[1]為你需要算加法的第一個數字,n[2]為第二個,...n[N]為第N個數字(N為需要算加法的數字個數), 並令y初始值為0,先令i=1運行這個算法(如上所示,重複n[i]次),然後令i=2運行這個算法。。直到i=N。注意y值一直不要清零。最後y的值就是你需要的加法答案。 你想知道,有沒有某種運算順序能使答案等於W。 一個循環中的全部語句,是不能改變在總的語句排列中的相對順序的。 (這裏的第i個循環是指這n[i]*2條語句。就是你把屬於第i個循環的語句抽出來看,它們需要按照原順序排列。在你沒有運行完這個循環的最靠前一條未完成的 語句的時候,你是不能跳過它先去完成這個循環後面的語句的。你能做的僅是把若干個循環按照你所規定的順序「歸併」起來。) 舉個例子,n[1]= 2 ,n[2]=1, W=1.一種可行的運算順序是「2 1 1 1 1 2」,數字為幾表示運行第幾個算法的下一條語句(你可以看到」1」出現了4次,是因為n[1]=2即循環兩次,而每次循環裏面有兩條語句,所以2*2=4次)
y值 y[1] 值 y[2] 值 執行0條語句過後 0 0 0 執行1條過後(y[2]=y) 0 0 0 執行2條過後(y[1]=y) 0 0 0 執行3條過後(y=y[1]+1) 1 0 0 執行4條過後(y[1]=y) 1 1 0 執行5條過後(y=y[1]+1) 2 1 0 執行6條過後(y=y[2]+1) 1 1 0 可以看到,最後y值變成了1,也就完成了我們的任務。 輸入格式 第一行你會得到用空格分開的兩個整數N(1<=N<=100)和W(-10^9<=W<=10^9),(N為需要算加法的數字個數,W是你希望算出的數)。 第二行你會得到n個整數n[i] (1<=n[i]<=1000). 輸出格式 第一行您應該輸出Yes(若能以某種順序使得這個算法得出W的值) 或No。 如果第一行是No,接下來就不用繼續輸出了。 如果是Yes, 請在第2行輸出2*sigma(n[i])個用空格隔開的數,表示任意一種滿足條件的運算順序。 樣例輸入 1 10 11 樣例輸出 No 樣例輸入 2 3 4 4 樣例輸出 Yes 1 1 2 1 2 2 2 2 2 1 2 1 1 1 1 2 樣例輸入 3 6 1 2 3 樣例輸出 Yes 1 1 2 2 2 2 3 3 3 3 3 3 數據規模和約定 對於30%的數據,n<=4, n[i]的和小於10. 對於100%的數據,n<=100 , -10^9<=W<=10^9, 1<=n[i]<=1000
|
|
一派掌門 二十級 |
算法訓練 Tricky and Clever Password
時間限制:2.0s 內存限制:256.0MB
問題描述 在年輕的時候,我們故事中的英雄——國王 Copa——他的私人數據並不是完全安全地隱蔽。對他來說是,這不可接受的。因此,他發明了一種密碼,好記又難以破解。後來,他才知道這種密碼是一個長度為奇數的回文串。
Copa 害怕忘記密碼,所以他決定把密碼寫在一張紙上。他發現這樣保存密碼不安全,於是他決定按下述方法加密密碼:他選定一個整數 X ,保證 X
不小於 0 ,且 2X 嚴格小於串長度。然後他把密碼分成 3 段,最前面的 X 個字符為一段,最後面的 X
個字符為一段,剩餘的字符為一段。不妨把這三段依次稱之為 prefix, suffix, middle 。顯然, middle 的長度為一個大於 0
的奇數,且 prefix 、 suffix 的長度相等。他加密後的密碼即為 A + prefix + B + middle + C +
suffix ,其中 A 、 B 、 C 是三個由 Copa 選定的字符串,且都有可能為空, + 表示字符串相連。
許多年過去了。Copa 昨天找到了當年寫下加密後字符串的那張紙。但是,Copa 把原密碼、A、B、C 都忘了。現在,他請你找一個儘量長的密碼,使得這個密碼有可能被當年的 Copa 發明、加密並寫下。輸入格式 輸入包含一個只含有小寫拉丁字母的字符串,長度在 1 到 10^5 之內。輸出格式 第一行包含一個整數 k ,表示你找到的原密碼分成的 3 個部分中有多少個非空字符串。顯然 k in {1, 3} 。接下來 k 行,每行 2 個用空格分開的整數 x_i l_i ,表示這一部分的起始位置和長度。要求輸出的 x_i 遞增。
起始位置 x_i 應該在 1 到加密後的字符串長度之間。 l_i 必須是正整數,因為你只要輸出非空部分的信息。 middle 的長度必須為奇數。
如果有多組答案,任意一組即可。提示:你要最大化的是輸出的 l_i 的總和,而不是 k 。樣例輸入abacaba樣例輸出1
1 7樣例輸入axbya樣例輸出3
1 1
2 1
5 1樣例輸入xabyczba樣例輸出3
2 2
4 1
7 2數據規模和約定 對於 10% 的數據: n <= 10
對於 30% 的數據: n <= 100
對於 100% 的數據: n <= 100000
存在 20% 的數據,輸出文件第一行為 1 。
|
|
一派掌門 二十級 |
算法訓練 Beaver's Calculator 時間限制:3.0s 內存限制:256.0MB 問題描述 從萬能詞典來的聰明的海狸已經使我們驚訝了一次。他開發了一種新的計算器,他將此命名為"Beaver's Calculator 1.0"。它非常特別,並且被計劃使用在各種各樣的科學問題中。 為了測試它,聰明的海狸邀請了n位科學家,編號從1到n。第i位科學家給這個計算器帶來了 ki個計算題。第i個科學家帶來的問題編號1到n,並且它們必須按照編號一個一個計算,因為對於每個問題的計算都必須依賴前一個問題的計算結果。 每個教授的每個問題都用一個數 ai, j 來描述,i(1≤i≤n)是科學家的編號,j(1≤j≤ ki )是問題的編號, ai, j 表示解決這個問題所需資源單位的數量。 這個計算器非常不凡。它一個接一個的解決問題。在一個問題解決後,並且在下一個問題被計算前,計算器分配或解放資源。 計算器中最昂貴的操作是解放資源,解放遠遠慢於分配。所以對計算器而言,每一個接下來的問題所需的資源不少於前一個,是非常重要的。 給你關於這些科學家所給問題的相關信息。你需要給這些問題安排一個順序,使得「壞對」儘可能少。 所謂「壞對」,就是相鄰兩個問題中,後一個問題需求的資源比前一個問題少。別忘了,對於同一個科學家給出的問題,計算它們的相對順序必須是固定的。 輸入格式 第一行包含一個整數n,表示科學家的人數。接下來n行每行有5個整數,ki, ai, 1, xi, yi, mi (0 ≤ ai, 1 < mi ≤ 109, 1 ≤ xi, yi ≤ 109) ,分別表示第i個科學家的問題個數,第1個問題所需資源單位數,以及3個用來計算 ai, j 的參量。ai, j = (ai, j - 1 * xi + yi)mod mi。 輸出格式 第一行輸出一個整數,表示最優順序下最少的「壞對」個數。 如果問題的總個數不超過200000,接下來輸出 行,表示解決問題的最優順序。每一行兩個用空格隔開的整數,表示這個問題所需的資源單位數和提供這個問題的科學家的編號。 樣例輸入 2 2 1 1 1 10 2 3 1 1 10 樣例輸出 0 1 1 2 1 3 2 4 2 數據規模和約定 20%的數據 n = 2, 1 ≤ ki ≤ 2000; 另外30%的數據 n = 2, 1 ≤ ki ≤ 200000; 剩下50%的數據 1 ≤ n ≤ 5000, 1 ≤ ki ≤ 5000。
|
|
一派掌門 二十級 |
算法訓練 Cowboys 時間限制:2.0s 內存限制:256.0MB 問題描述 一個間不容髮的時刻:n個牛仔站立於一個環中,並且每個牛仔都用左輪手槍指着他旁邊的人!每個牛仔指着他順時針或者逆時針方向上的相鄰的人。正如很多西部片那樣,在這一刻,繩命是入刺的不可惜……對峙的場景每秒都在變化。每秒鐘牛仔們都會分析局勢,當一對相鄰的牛仔發現他們正在互指的時候,就會轉過身。一秒內每對這樣的牛仔都會轉身。所有的轉身都同時在一瞬間發生。我們用字母來表示牛仔所指的方向。「A」表示順時針方向,「B」表示逆時針方向。如此,一個僅含「A」「B」的字符串便用來表示這個由牛仔構成的環。這是由第一個指着順時針方向的牛仔做出的記錄。例如,牛仔環「ABBBABBBA」在一秒後會變成「BABBBABBA」;而牛仔環「BABBA」會變成「ABABB」。 這幅圖說明了「BABBA」怎麼變成「ABABB」 一秒過去了,現在用字符串s來表示牛仔們的排列。你的任務是求出一秒前有多少種可能的排列。如果某個排列中一個牛仔指向順時針,而在另一個排列中他指向逆時針,那麼這兩個排列就是不同的。 輸入格式 輸入數據包括一個字符串s,它只含有「A」和「B」。 輸出格式 輸出你求出來的一秒前的可能排列數。 數據規模和約定 s的長度為3到100(包含3和100) 樣例輸入 BABBBABBA 樣例輸出 2 樣例輸入 ABABB 樣例輸出 2 樣例輸入 ABABAB 樣例輸出 4 樣例說明 測試樣例一中,可能的初始排列為:"ABBBABBAB"和 "ABBBABBBA"。 測試樣例二中,可能的初始排列為:"AABBB"和"BABBA"。
|
|
一派掌門 二十級 |
算法訓練 數字三角形 時間限制:1.0s 內存限制:256.0MB 問題描述 (圖3.1-1)示出了一個數字三角形。 請編一個程序計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。 ●每一步可沿左斜線向下或右斜線向下走; ●1<三角形行數≤100; ●三角形中的數字為整數0,1,…99;
. (圖3.1-1) 輸入格式 文件中首先讀到的是三角形的行數。
接下來描述整個三角形 輸出格式 最大總和(整數) 樣例輸入 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 樣例輸出 30
|
|
一派掌門 二十級 |
算法訓練 未名湖邊的煩惱
時間限制:1.0s 內存限制:256.0MB
問題描述 每年冬天,北大未名湖上都是滑冰的好地方。北大體育組準備了許多冰鞋,可是人太多了,每天下午收工後,常常一雙冰鞋都不剩。
每天早上,租鞋窗口都會排起長龍,假設有還鞋的m個,有需要租鞋的n個。現在的問題是,這些人有多少種排法,可以避免出現體育組沒有冰鞋可租的尷尬場面。(兩個同樣需求的人(比如都是租鞋或都是還鞋)交換位置是同一種排法)輸入格式 兩個整數,表示m和n輸出格式 一個整數,表示隊伍的排法的方案數。樣例輸入3 2樣例輸出5數據規模和約定 m,n∈[0,18]
問題分析
|
|
一派掌門 二十級 |
算法訓練 最大的算式
時間限制:1.0s 內存限制:256.0MB
問題描述 題目很簡單,給出N個數字,不改變它們的相對位置,在中間加入K個乘號和N-K-1個加號,(括號隨便加)使最終結果儘量大。因為乘號和加號一共就是N-1個了,所以恰好每兩個相鄰數字之間都有一個符號。例如:
N=5,K=2,5個數字分別為1、2、3、4、5,可以加成:
1*2*(3+4+5)=24
1*(2+3)*(4+5)=45
(1*2+3)*(4+5)=45
……輸入格式 輸入文件共有二行,第一行為兩個有空格隔開的整數,表示N和K,其中(2<=N<=15, 0<=K<=N-1)。第二行為 N個用空格隔開的數字(每個數字在0到9之間)。輸出格式 輸出文件僅一行包含一個整數,表示要求的最大的結果樣例輸入5 2
1 2 3 4 5樣例輸出120樣例說明 (1+2+3)*4*5=120
|
|
一派掌門 二十級 |
算法訓練 圖形顯示
時間限制:1.0s 內存限制:512.0MB
問題描述 編寫一個程序,首先輸入一個整數,例如5,然後在屏幕上顯示如下的圖形(5表示行數):
* * * * *
* * * *
* * *
* *
*
|
|
一派掌門 二十級 |
算法訓練 排序
時間限制:1.0s 內存限制:512.0MB
問題描述 編寫一個程序,輸入3個整數,然後程序將對這三個整數按照從大到小進行排列。
輸入格式:輸入只有一行,即三個整數,中間用空格隔開。
輸出格式:輸出只有一行,即排序後的結果。
輸入輸出樣例樣例輸入9 2 30樣例輸出30 9 2
|
|
一派掌門 二十級 |
算法訓練 2的次冪表示
時間限制:1.0s 內存限制:512.0MB
問題描述 任何一個正整數都可以用2進制表示,例如:137的2進制表示為10001001。
將這種2進制表示寫成2的次冪的和的形式,令次冪高的排在前面,可得到如下表達式:137=2^7+2^3+2^0
現在約定冪次用括號來表示,即a^b表示為a(b)
此時,137可表示為:2(7)+2(3)+2(0)
進一步:7=2^2+2+2^0 (2^1用2表示)
3=2+2^0
所以最後137可表示為:2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:1315=2^10+2^8+2^5+2+1
所以1315最後可表示為:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)輸入格式 正整數(1<=n<=20000)輸出格式 符合約定的n的0,2表示(在表示中不能有空格)樣例輸入137樣例輸出2(2(2)+2+2(0))+2(2+2(0))+2(0)樣例輸入1315樣例輸出2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)提示 用遞歸實現會比較簡單,可以一邊遞歸一邊輸出
|
|
一派掌門 二十級 |
算法訓練 前綴表達式
時間限制:1.0s 內存限制:512.0MB
問題描述 編寫一個程序,以字符串方式輸入一個前綴表達
式,然後計算它的值。輸入格式為:「運算符 對象1
對象2」,其中,運算符為「+」(加法)、「-」(減法)、「*」(乘法)或「/」(除法),運算對象為不超過10的整數,它們之間用一個空格隔開。要
求:對於加、減、乘、除這四種運算,分別設計相應的函數來實現。
輸入格式:輸入只有一行,即一個前綴表達式字符串。
輸出格式:輸出相應的計算結果(如果是除法,直接採用c語言的「/」運算符,結果為整數)。
輸入輸出樣例樣例輸入+ 5 2樣例輸出7
|
|
一派掌門 二十級 |
算法訓練 Anagrams問題
時間限制:1.0s 內存限制:512.0MB
問題描述 Anagrams指的是具有如下特性的兩個單
詞:在這兩個單詞當中,每一個英文字母(不區分大小寫)所出現的次數都是相同的。例如,「Unclear」和「Nuclear」、「Rimon」和
「MinOR」都是Anagrams。編寫一個程序,輸入兩個單詞,然後判斷一下,這兩個單詞是否是Anagrams。每一個單詞的長度不會超過80個字
符,而且是大小寫無關的。
輸入格式:輸入有兩行,分別為兩個單詞。
輸出格式:輸出只有一個字母Y或N,分別表示Yes和No。
輸入輸出樣例樣例輸入Unclear
Nuclear樣例輸出Y
|
|
一派掌門 二十級 |
算法訓練 出現次數最多的整數
時間限制:1.0s 內存限制:512.0MB
問題描述
編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然後程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即並列第一,那麼只打印比較小的那個值。
輸入格式:第一行是一個整數N,N £ 20;接下來有N行,每一行表示一個整數,並且按照從小到大的順序排列。
輸出格式:輸出只有一行,即出現次數最多的那個元素值。
輸入輸出樣例樣例輸入5
100
150
150
200
250樣例輸出150
|
|
一派掌門 二十級 |
算法訓練 字串統計
時間限制:1.0s 內存限制:512.0MB
問題描述 給定一個長度為n的字符串S,還有一個數字L,統計長度大於等於L的出現次數最多的子串(不同的出現可以相交),如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行一個數字L。
第二行是字符串S。
L大於0,且不超過S的長度。輸出格式 一行,題目要求的字符串。
輸入樣例1:
4
bbaabbaaaaa
輸出樣例1:
bbaa
輸入樣例2:
2
bbaabbaaaaa
輸出樣例2:
aa數據規模和約定 n<=60
S中所有字符都是小寫英文字母。提示 枚舉所有可能的子串,統計出現次數,找出符合條件的那個
|
|
一派掌門 二十級 |
算法訓練 矩陣乘法
時間限制:1.0s 內存限制:512.0MB
問題描述 輸入兩個矩陣,分別是m*s,s*n大小。輸出兩個矩陣相乘的結果。輸入格式 第一行,空格隔開的三個正整數m,s,n(均不超過200)。
接下來m行,每行s個空格隔開的整數,表示矩陣A(i,j)。
接下來s行,每行n個空格隔開的整數,表示矩陣B(i,j)。輸出格式 m行,每行n個空格隔開的整數,輸出相乘後的矩陣C(i,j)的值。樣例輸入2 3 2
1 0 -1
1 1 -3
0 3
1 2
3 1樣例輸出-3 2
-8 2
提示
矩陣C應該是m行n列,其中C(i,j)等於矩陣A第i行行向量與矩陣B第j列列向量的內積。
例如樣例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3
|
|
一派掌門 二十級 |
算法訓練 大小寫轉換
時間限制:1.0s 內存限制:512.0MB
問題描述
編寫一個程序,輸入一個字符串(長度不超過20),然後把這個字符串內的每一個字符進行大小寫變換,即將大寫字母變成小寫,小寫字母變成大寫,然後把這個新的字符串輸出。
輸入格式:輸入一個字符串,而且這個字符串當中只包含英文字母,不包含其他類型的字符,也沒有空格。
輸出格式:輸出經過轉換後的字符串。
輸入輸出樣例樣例輸入AeDb樣例輸出aEdB
|
|
一派掌門 二十級 |
算法訓練 動態數組使用 時間限制:1.0s 內存限制:512.0MB
從鍵盤讀入n個整數,使用動態數組存儲所讀入的整數,並計算它們的和與平均值分別輸出。要求儘可能使用函數實現程序代碼。平均值為小數的只保留其整數部分。
樣例輸入: 5 3 4 0 0 2 樣例輸出: 9 1
樣例輸入: 7 3 2 7 5 2 9 1 樣例輸出: 29 4
|
|
一派掌門 二十級 |
算法訓練 刪除數組零元素 時間限制:1.0s 內存限制:512.0MB
從鍵盤讀入n個整數放入數組中,編寫函數CompactIntegers,刪除數組中所有值為0的元素,其後元素向數組首端移動。注意,CompactIntegers函數需要接受數組及其元素個數作為參數,函數返回值應為刪除操作執行後數組的新元素個數。輸出刪除後數組中元素的個數並依次輸出數組元素。
樣例輸入: (輸入格式說明:5為輸入數據的個數,3 4 0 0 2 是以空格隔開的5個整數) 5 3 4 0 0 2 樣例輸出:(輸出格式說明:3為非零數據的個數,3 4 2 是以空格隔開的3個非零整數) 3 3 4 2
樣例輸入: 7 0 0 7 0 0 9 0 樣例輸出: 2 7 9
樣例輸入: 3 0 0 0 樣例輸出: 0
|
|
一派掌門 二十級 |
算法訓練 最小乘積(基本型) 時間限制:1.0s 內存限制:512.0MB 問題描述 給兩組數,各n個。 請調整每組數的排列順序,使得兩組數據相同下標元素對應相乘,然後相加的和最小。要求程序輸出這個最小值。 例如兩組數分別為:1 3 -5和-2 4 1
那麼對應乘積取和的最小值應為: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 輸入格式 第一個行一個數T表示數據組數。後面每組數據,先讀入一個n,接下來兩行每行n個數,每個數的絕對值小於等於1000。 n<=8,T<=1000 輸出格式 一個數表示答案。 樣例輸入
2 3 1 3 -5 -2 4 1 5 1 2 3 4 5 1 0 1 0 1
樣例輸出
-25 6
|
|
一派掌門 二十級 |
算法訓練 Torry的困惑(基本型) 時間限制:1.0s 內存限制:512.0MB 問題描述 Torry從小喜愛數學。一天,老師告訴他,像2、3、5、7……這樣的數叫做質數。Torry突然想到一個問題,前10、100、1000、10000……個質數的乘積是多少呢?他把這個問題告訴老師。老師愣住了,一時回答不出來。於是Torry求助於會編程的你,請你算出前n個質數的乘積。不過,考慮到你才接觸編程不久,Torry只要你算出這個數模上50000的值。 輸入格式 僅包含一個正整數n,其中n<=100000。 輸出格式 輸出一行,即前n個質數的乘積模50000的值。 樣例輸入
1
樣例輸出
2
|
|
一派掌門 二十級 |
算法訓練 尋找數組中最大值 時間限制:1.0s 內存限制:512.0MB 問題描述 對於給定整數數組a[],尋找其中最大值,並返回下標。 輸入格式 整數數組a[],數組元素個數小於1等於100。輸出數據分作兩行:第一行只有一個數,表示數組元素個數;第二行為數組的各個元素。 輸出格式 輸出最大值,及其下標 樣例輸入
3 3 2 1
樣例輸出
3 0
|
|