C++編程試題:計(jì)算機(jī)學(xué)科丨編程夏令營上機(jī)考試題解(4)
作為一個編程學(xué)習(xí)者,自己多多練習(xí)刷刷題總是沒錯的!今天我們再來看幾道題:

A:最簡真分?jǐn)?shù)
全局題號3526 提交次數(shù)67 嘗試人數(shù)39 通過人數(shù)38
總時間限制:
1000毫秒
內(nèi)存限制:
65536kB
描述
給出n個正整數(shù),任取兩個數(shù)分別作為分子和分母組成最簡真分?jǐn)?shù),編程求共有幾個這樣的組合。
輸入
第一行是一個正整數(shù)n(n<=600)。
第二行是n個不同的整數(shù),相鄰兩個整數(shù)之間用單個空格隔開。整數(shù)大于1且小于等于1000。
輸出
一個整數(shù),即最簡真分?jǐn)?shù)組合的個數(shù)。
樣例輸入

樣例輸出

C++實(shí)現(xiàn)

B:n-gram串頻統(tǒng)計(jì)
全局題號7604 提交次數(shù)128 嘗試人數(shù)34 通過人數(shù)31
總時間限制:
1000毫秒
內(nèi)存限制:
65536kB
描述
在文本分析中常用到n-gram串頻統(tǒng)計(jì)方法,即,統(tǒng)計(jì)相鄰的n個單元(如單詞、漢字、或者字符)在整個文本中出現(xiàn)的頻率。假設(shè)有一個字符串,請以字符為單位,按n-gram方法統(tǒng)計(jì)每個長度為 n 的子串出現(xiàn)的頻度,并輸出最高頻度以及頻度最高的子串。所給的字符串只包含大小寫字母,長度不多于500個字符,且 1 < n < 5。
如果有多個子串頻度最高,則根據(jù)其在序列中第一次出現(xiàn)的次序依次輸出,每行輸出一個,如果最高頻度不大于1,則輸出NO。
輸入
第一行為n;
第二行為字符串。
輸出
輸出最高頻度以及頻度最高的所有子串。若最高頻度不大于1,只輸出一行NO。
樣例輸入

樣例輸出

提示
樣例中,所有的3-gram是:abc,bcd,cde,def,efa,fab,abc,bcd。最后面的cd不足以形成3-gram,則不考慮。這樣,abc 和 bcd 都出現(xiàn)了2次,其余的只出現(xiàn)了1次。
C++實(shí)現(xiàn)

C:垂直直方圖
全局題號1802 提交次數(shù)74 嘗試人數(shù)37 通過人數(shù)37
總時間限制:
1000毫秒
內(nèi)存限制:
65536kB
描述
輸入4行全部由大寫字母組成的文本,輸出一個垂直直方圖,給出每個字符出現(xiàn)的次數(shù)。注意:只用輸出字符的出現(xiàn)次數(shù),不用輸出空白字符,數(shù)字或者標(biāo)點(diǎn)符號的輸出次數(shù)。
輸入
輸入包括4行由大寫字母組成的文本,每行上字符的數(shù)目不超過80個。
輸出
輸出包括若干行。其中最后一行給出26個大寫英文字母,這些字母之間用一個空格隔開。前面的幾行包括空格和星號,每個字母出現(xiàn)幾次,就在這個字母的上方輸出一個星號。注意:輸出的第一行不能是空行。
樣例輸入

樣例輸出

C++實(shí)現(xiàn)

D:比賽預(yù)測
全局題號325 提交次數(shù)27 嘗試人數(shù)11 通過人數(shù)8
總時間限制:
1000毫秒
內(nèi)存限制:
65536kB
描述
假設(shè)有 M 個人,包括你,在玩一種特殊的紙牌游戲。開始時,每個玩家收到 N 張牌。一張牌的點(diǎn)數(shù)是一個正整數(shù),最多為 N*M。并且沒有兩張牌的點(diǎn)數(shù)相同。在一輪中,每個玩家選擇一張牌與其他牌進(jìn)行比較。擁有最大點(diǎn)數(shù)的玩家贏得這一輪,然后下一輪開始。N輪后,當(dāng)每個玩家的牌都被選中時,贏得最多輪的玩家就是游戲的獲勝者。
給定你在開始時收到的牌,編寫一個程序來告訴你在整個游戲中至少可以贏的最大輪數(shù)。
輸入
輸入由幾個測試用例組成。每個case的第一行包含兩個整數(shù)m(2 <= m <= 20)和n(1<= n <= 50),分別代表玩家人數(shù)和每個玩家在游戲開始時收到的牌數(shù), 分別。接下來是一行 n 個正整數(shù),表示您在開始時收到的牌點(diǎn)數(shù)。然后是一個空行來分隔這些案例。
輸入由帶有兩個零的行終止。
輸出
對于每個測試用例,輸出一行,其中包含測試用例編號,后跟您在游戲中至少會贏的回合數(shù)。
樣例輸入

樣例輸出

C++實(shí)現(xiàn)

G:網(wǎng)絡(luò)
全局題號289 提交次數(shù)83 嘗試人數(shù)28 通過人數(shù)17
總時間限制:
1000毫秒
內(nèi)存限制:
65536kB
描述
您被指派設(shè)計(jì)廣闊區(qū)域中某些點(diǎn)之間的網(wǎng)絡(luò)連接。您將獲得該區(qū)域中的一組點(diǎn),以及可能連接成對點(diǎn)的電纜的一組可能路線。對于兩點(diǎn)之間的每條可能的路線,您將獲得連接該路線上的點(diǎn)所需的電纜長度。請注意,兩個給定點(diǎn)之間可能存在許多可能的路線。假設(shè)給定的可能路線(直接或間接)連接該區(qū)域中的每兩個點(diǎn)。
你的任務(wù)是為該區(qū)域設(shè)計(jì)網(wǎng)絡(luò),使每兩個點(diǎn)之間有一個連接(直接或間接)(即所有點(diǎn)都相互連接,但不一定通過直接電纜),并且總長度為使用的電纜是最少的。
輸入
輸入文件由許多數(shù)據(jù)集組成。每個數(shù)據(jù)集定義一個所需的網(wǎng)絡(luò)。集合的第一行包含兩個整數(shù):第一行定義給定點(diǎn)的數(shù)量 P,第二行定義點(diǎn)之間給定路線的數(shù)量 R。以下 R 行定義了點(diǎn)之間的給定路線,每行給出三個整數(shù):前兩個數(shù)字標(biāo)識點(diǎn),第三個給出路線的長度。數(shù)字用空格分隔。僅給出一個數(shù)字 P=0 的數(shù)據(jù)集表示輸入的結(jié)束。數(shù)據(jù)集以空行分隔。
最大點(diǎn)數(shù)為 50。給定路線的最大長度為 100??赡苈肪€的數(shù)量是無限的。節(jié)點(diǎn)用 1 到 P(含)之間的整數(shù)標(biāo)識。兩點(diǎn) i 和 j 之間的路線可以用 ij 或 j i 給出。
輸出
對于每個數(shù)據(jù)集,在單獨(dú)的行上打印一個數(shù)字,該數(shù)字給出了用于整個設(shè)計(jì)網(wǎng)絡(luò)的電纜的總長度。
樣例輸入

樣例輸出

C++實(shí)現(xiàn)

為了幫助大家,輕松,高效學(xué)習(xí)C語言/C++,給大家分享我收集的資源,從最零基礎(chǔ)開始的,幫助大家在學(xué)習(xí)C語言的道路上披荊斬棘!
微信公眾號:C語言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!大家也要把握住大學(xué)的時光,抓住成長的每一次機(jī)會哦~
編程學(xué)習(xí)書籍分享:

編程粉絲交流:
