HNUCM 2018級《算法分析與設計》練習一題解

HNUCM 2018級《算法分析與設計》練習一題解


A-無法重啓的2020


題意:
給定一個四位數,判斷是否符合ABAB類型
是輸出Yes,否輸出No

題解:
需要注意的坑點是第一個數和第二個數不能相等,否則就是AAAA類型了


B-XP的衆數


題意:
多組輸入,每組給定數組大小,後面緊跟着該數組的值,求該數組衆數的個數

題解:
1.如果會C++,直接用map,會發現非常水

2.但是不會也沒關係,可以先對數組a[]排序,然後再進行遍歷,可以再開一個數組b[],用來存在遍歷時每個數出現的次數,然後再對新數組遍歷一次,找出出現最多的次數;然後通過遍歷一一比較即可得出答案(當然也可以對數組b[]由大到小排序,然後再遍歷遇到與前一個不等時,直接跳出循環)


C-XP的電燈


題意:
k位同學,n盞燈,起初所有燈都是熄滅的;第i位同學會按一次i的倍數的燈(也就是說當熄滅時會打開,打開狀態是會關閉);求最終有多少盞燈是亮着的

題解:
直接可以用數組模擬,兩重循環即可解決,第一重循環對學生,第二重循環對燈


D-飢餓的XP


題意:
首先給出n,m;n表示xp的速度,m表示食物供給點的數量
然後給出xp的位置(x,y)
緊接着給出m個食物供給點的位置(xi,yi)

求到達最近食物點的時間

題解:
1、需要注意的是:這題需要多組輸入,題目的確沒講太清楚

2、然後就只要注意下防止精度丟失就可以了


E-Yftc的字符串轉換


1、多組輸入
2、直接對每個字符串遍歷一下,然後大寫轉小寫;小寫轉大寫即可


F-進制轉換:十進制轉二進制


題意:
多組輸入,給出一個10進制數,求它的二進制表示方法

題解:
直接用數組存即可,當然防止暴內存,可以用字符數組存

除k取餘即可


G-圓柱的體積


題意:
多組輸入
每次輸入圓柱體的底面半徑和高

題解:
就只要注意一下不需要四捨五入
由於最後保留三位小數可以通過先*10000,得到數x,然後強制類型轉化爲int類型,接着對x%10,即:x=x-x%10; 然後再/(10000*1.0)即可

(當然其他操作也可以解決)


H-數素數


題意:
給出m,n;求第m個素數到第n個素數
其中每10個素數爲一行(行末不能有空格)

題解:
1、可以用素數篩提前打表,素數篩的話可以使用暴力打表;
當然爲了顯得高級點,可以用數論中的埃氏篩O(nlogn)和歐拉篩O(n)

可以參考這篇博客:
素數篩(埃氏篩+歐拉篩)

2、當然也可以直接暴力,因爲數據比較弱,這樣也是可以過的


I-平方與立方


題意:
t組數據,每組數據給出n,表示x,y能取到的最大值;
求滿足xx=yy*y的x的個數

題解:
由於n<=1000
於是可以直接用兩重循環即可,一層對x,一層對y


J-5x+y


題意:
t組數據,每組數據給出n,求在(0,n]中,滿足5*x+y=n的二元組個數

題解:
同樣直接兩重循環即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章