a.1mb=1024kb
b.多少個9
問題描述
在1至2019中,有多少個數的數字中包括數字9?
注意,有的數中的數字中包含多個9,這個數隻算一次。例如,1999這個數包含三個數字9,但在計算時只算做乙個數。
在考試中,不知道1至2019的至中包不包括2019這個數,從結果上看應該是包括的:[1,2029]
c. 長草
問題描述
小明有一塊空地,他將這塊空地劃分為 n 行 m 列的小塊,每行和每列的長度都為 1。
小明選了其中的一些小塊空地,種上了草,其他小塊仍然保持是空地。
這些草長得很快,每個月,草都會向外長出一些,如果乙個小塊種了草,則它將向自己的上、下、左、右四小塊空地擴充套件,這四小塊空地都將變為有草的小塊。
請告訴小明,k 個月後空地上哪些地方有草。
輸入格式
輸入的第一行包含兩個整數 n, m。
接下來 n 行,每行包含 m 個字母,表示初始的空地狀態,字母之間沒有空格。如果為小數點,表示為空地,如果字母為 g,表示種了草。
接下來包含乙個整數 k。
輸出格式
輸出 n 行,每行包含 m 個字母,表示 k 個月後空地的狀態。如果為小數點,表示為空地,如果字母為 g,表示長了草。
樣例輸入
4 5.g…
……g……2
樣例輸出
gggg.
gggg.
ggggg
.ggg.
評測用例規模與約定
對於 30% 的評測用例,2 <= n, m <= 20。
對於 70% 的評測用例,2 <= n, m <= 100。
對於所有評測用例,2 <= n, m <= 1000,1 <= k <= 1000。
題解:
普通解法1:遍歷然後更新
大佬解法:
採用廣度優先搜尋的想法,設定乙個佇列,第0月開始長草的先入隊,然後將四周的下乙個月長草的入隊後出隊,直到月份為k
1 scanner scn=newscanner(system.in);
2int n=scn.nextint(),m=scn.nextint();
3char a=new
char
[n][m];
4string line;
5 queuequeue=new
linkedlist();
6for(int i=0;i)714
}15}16
int k=scn.nextint();
17while(!queue.isempty())
26//上27
if(0<=q.x-1&&a[q.x-1][q.y]!='g')
30//右31
if(q.y+1)
34//左35
if(0<=q.y-1&&a[q.x][q.y-1]!='g') 38}
39for(int i=0;i)
43system.out.println();
44 }
d.選節目
問題描述
小明要組織一台晚會,總共準備了 n 個節目。然後晚會的時間有限,他只能最終選擇其中的 m 個節目。
這 n 個節目是按照小明設想的順序給定的,順序不能改變。
小明發現,觀眾對於晚上的喜歡程度與前幾個節目的好看程度有非常大的關係,他希望選出的第乙個節目盡可能好看,在此前提下希望第二個節目盡可能好看,依次類推。
小明給每個節目定義了乙個好看值,請你幫助小明選擇出 m 個節目,滿足他的要求。
輸入格式
輸入的第一行包含兩個整數 n, m ,表示節目的數量和要選擇的數量。
第二行包含 n 個整數,依次為每個節目的好看值。
輸出格式
輸出一行包含 m 個整數,為選出的節目的好看值。
樣例輸入
5 33 1 2 5 4
樣例輸出
3 5 4
樣例說明
選擇了第1, 4, 5個節目。
評測用例規模與約定
對於 30% 的評測用例,1 <= n <= 20;
對於 60% 的評測用例,1 <= n <= 100;
對於所有評測用例,1 <= n <= 100000,0 <= 節目的好看值 <= 100000。
題解:
我考試的解法建立在讀錯題目的基礎上,這裡重新讀題更新了傻瓜解法,注意題目中應該是建立在第乙個節目最好看的基礎上,再選擇第二個節目,不是選擇所有節目好看值最大的節目。思路是,建立b[m]記錄m的節目,b[i]=max(a[x],x€[b[i-1]+1,n-m+i])的x,重複im次,其中,i=0時,max(a[x],x€[0,n-m+i])的x,這樣的傻瓜解法裡面具有重複的遍歷次序,顯然可以優化,但是優化的話,似乎會引起大量的元素移動。
1 scanner scn=newscanner(system.in);
2int n=scn.nextint(),m=scn.nextint();
3int a=new
int[n];
4for(int i=0;i)
7int b=new
int[m];
8for(int j=0;j) 14}
15else20}
21}22for(int i=0;i)
大佬解法:大佬說這是乙個求靜態區間最值 (static rmq) 問題,使用任何一種能在 o(log2n)時間內求出長度為 n 區間最值的資料結構都可以。
他提供了
資料結構:parse table(st表)segment tree(線段樹/區間樹)binary indexed tree(樹狀陣列/二叉索引樹)
演算法:規約lca + 分塊
我另開一篇部落格記錄這個:
本篇參考:
藍橋杯校內賽題解
a.1mb 1024kb b.多少個9 問題描述 在1至2019中,有多少個數的數字中包括數字9?注意,有的數中的數字中包含多個9,這個數隻算一次。例如,1999這個數包含三個數字9,但在計算時只算做乙個數。在考試中,不知道1至2019的至中包不包括2019這個數,從結果上看應該是包括的 1,202...
2020藍橋杯校內模擬賽題解
第二題 問題描述 在1至2019中,有多少個數的數字中包含數字9?注意,有的數中的數字包含多個9,這個數隻算一次。例如,1999這個數包含數字9,在計算只是算乙個數。include using namespace std intmain cout count endl cout ending.end...
藍橋杯校內賽
問題描述 1200000有多少個約數 只計算正約數 答案提交 這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果為乙個整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。問題描述 在計算機儲存中,15.125gb是多少mb?答案提交 這是一道結果填空的題,你只需要算出結果後提交即可...