目錄
第6題第7題
第8題第9題
第10題
這次校內模擬賽頗為簡單,筆者在差不多兩個半小時即做完了全部的題目,也取得了還挺不錯的成績,下面我就給大家分享一下自己的**。1-4題其實不需要**即可解決,筆者在此就不多闡述了。
問題描述
在數列 a[1], a[2], ..., a[n] 中,如果對於下標 i, j, k 滿足 0本來筆者看到這道題還以為要找出所有的遞增三元組,本打算暴力搜尋所有可能。後來發現只需要找出中心點的個數,那只需要迴圈所有的點,判斷之前有沒有小於它的數,後面有沒有大於它的數,存在則符合條件。
問題描述#includeusing namespace std;
const int n = 1005;
int n, arr[n];
bool judge(int x);
int main() ;
bool judge(int x);
bool func();
int main()
bool func()
bool judge(int x)
乙個正整數如果任何乙個數字不大於右邊相鄰的數字,則稱為乙個數字遞增的數,例如1135是乙個數字遞增的數,而1024不是乙個數字遞增的數。
給定正整數 n,請問在整數 1 至 n 中有多少個數字遞增的數?
輸入格式
輸入的第一行包含乙個整數 n。
輸出格式
輸出一行包含乙個整數,表示答案。
樣例輸入
30樣例輸出
26評測用例規模與約定
對於 40% 的評測用例,1 <= n <= 1000。
對於 80% 的評測用例,1 <= n <= 100000。
對於所有評測用例,1 <= n <= 1000000。
迴圈1-n的所有數字。每次取數字的最後一位,然後整除10,對比每次取到的最後一位,若中途有一位不符合則判定為false。
問題描述#include #includeusing namespace std;
int n, ans;
bool judge(int num);
int main()
bool judge(int num)
return true;
}
小明有一塊空地,他將這塊空地劃分為 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。
每一回都迴圈所有位置,將每個'g'周圍是空地的地方都設為『n』,然後再次迴圈將『n'的地方都設為『g』。其實可以用bfs去做,將『g』節點全部儲存在佇列中,然後將逐個取出將周圍的空地設為『g'。
不可以直接在迴圈的過程中直接將空地設為『g』,這樣會破壞這次迴圈本身的樣子。
問題描述#include using namespace std;
int n, m, k;
char map[1000][1000];
int _next[2]=,,,};
void func();
int main()
for(int x=0;x問題描述
小明想知道,滿足以下條件的正整數序列的數量:
1. 第一項為 n;
2. 第二項不超過 n;
3. 從第三項開始,每一項小於前兩項的差的絕對值。
請計算,對於給定的 n,有多少種滿足條件的序列。
輸入格式
輸入一行包含乙個整數 n。
輸出格式
輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的餘數。
樣例輸入
4樣例輸出
7樣例說明
以下是滿足條件的序列:
4 14 1 1
4 1 2
4 24 2 1
4 34 4
評測用例規模與約定
對於 20% 的評測用例,1 <= n <= 5;
對於 50% 的評測用例,1 <= n <= 10;
對於 80% 的評測用例,1 <= n <= 100;
對於所有評測用例,1 <= n <= 1000。
這道題是乙個dp題。將每次的結果儲存在陣列中。找出後序數字中所有可能,符合最優子結構,將前兩個數字遞迴即可。
注意後面什麼數字都不加也是一種可能,筆者當時找了好久的bug才發現這個問題。
#include #include using namespace std;
#define n 10000
int n;
int dp[1005][1005];
int count(int n1, int n2);
int main()
int count(int n1, int n2)
小明要組織一台晚會,總共準備了 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。
第一次找出第1個到第(n-m+1)個節目中最好看的,第二次找出第乙個節目的位置後到(n-m+2)中最好看的,如此往後。
我們定義乙個型別包含位置資訊和好看程度,第一次將第1個到第(n-m+1)個節目按好看程度排序,取第乙個節目,記下節目位置cur;然後將節目按位置排序還原,排序cur接下來的節目,取第cur+1個節目,再復原節目,如此往後。
#include#includeusing namespace std;
class nodeprogram[10005],temp[10005];
int n,m;
int choice[10005];
bool cmp_index(node a,node b)
int main()
int pre=0; // 區間最左端的位置
int cur=n-(m-1); // 區間最右端的位置
for(int i=0;ifor(int i=0;icout
}
2023年藍橋杯校內模擬賽題解
1200000有多少個約數 只計算正約數 include int main printf d n count return 0 在計算機儲存中,15.125gb是多少mb?include int main 在1至2019中,有多少個數的數字中包含數字9?注意,有的數中的數字中包含多個9,這個數隻算一...
2020藍橋杯校內模擬賽題解
第二題 問題描述 在1至2019中,有多少個數的數字中包含數字9?注意,有的數中的數字包含多個9,這個數隻算一次。例如,1999這個數包含數字9,在計算只是算乙個數。include using namespace std intmain cout count endl cout ending.end...
藍橋杯校內模擬2020
問題描述 小明想知道,滿足以下條件的正整數序列的數量 1.第一項為 n 2.第二項不超過 n 3.從第三項開始,每一項小於前兩項的差的絕對值。請計算,對於給定的 n,有多少種滿足條件的序列。輸入格式 輸入一行包含乙個整數 n。輸出格式 輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的...