藍橋杯備戰技巧分享

2021-10-03 17:09:39 字數 1977 閱讀 1247

最近由於疫情的原因,不得不在家準備藍橋杯的比賽,開始也是一頭霧水,慢慢的發現還可以,就拿出最近訓練的幾道題來和大家分享一下`都是藍橋杯練習系統裡面的原題

1.問題描述

有n(2≤n≤20)塊晶元,有好有壞,已知好晶元比壞晶元多。

每個晶元都能用來測試其他晶元。用好晶元測試其他晶元時,能正確給出被測試晶元是好還是壞。而用壞晶元測試其他晶元時,會隨機給出好或是壞的測試結果(即此結果與被測試晶元實際的好壞無關)。

給出所有晶元的測試結果,問哪些晶元是好晶元。

輸入格式

輸入資料第一行為乙個整數n,表示晶元個數。

第二行到第n+1行為nn的一張表,每行n個資料。表中的每個資料為0或1,在這n行中的第i行第j列(1≤i, j≤n)的資料表示用第i塊晶元測試第j塊晶元時得到的測試結果,1表示好,0表示壞,i=j時一律為1(並不表示該晶元對本身的測試結果。晶元不能對本身進行測試)。

輸出格式

按從小到大的順序輸出所有好晶元的編號

樣例輸入

31 0 1

0 1 0

1 0 1

樣例輸出

1 3由於是n個晶元,所以需要比較nn次,又因為題目中交代的很清楚,好的晶元大於壞的晶元。設定每一列中測試為好的晶元序號為1,則只需要判斷每一列中為1的個數是否大於原有晶元的一半即可判斷是否為好的晶元

#include

int n;

int a[20]

[20];

int num[20]

=;int main ()}

int flag=0;

//設定輸出格式

for(i=

1;i<=n;i++

)else

printf

(" %d"

,i);}}

return0;

}

`問題描述

回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。

輸入格式

輸入第一行是兩個不超過200的正整數m, n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。

輸出格式

輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用乙個空格分隔,行末不要有多餘的空格。

樣例輸入

3 31 2 3

4 5 6

7 8 9

樣例輸出

1 4 7 8 9 6 3 2 5

樣例輸入

3 21 2

3 45 6

樣例輸出

1 3 5 6 4 2

首先輸出第乙個數,因為第乙個是固定的,然後採取分別向下,向右,向上,向左進行遍歷

#include

intmain()

;int m,n,i,j;

scanf

("%d %d"

,&m,

&n);

for(i=

0;i)for

(j=0

;j)scanf

("%d"

,&num[i]

[j])

;int count=1;

int x=

0,y=0;

printf

("%d"

,num[x]

[y])

; flag[x]

[y]=1;

while

(countwhile

(y+1

[y+1]==

0)while

(x-1

>=

0&&flag[x-1]

[y]==0)

while

(y-1

>=

0&&flag[x]

[y-1]==

0)}printf

("\n");

return0;

}`

這兩道題還是挺有代表性的

備戰藍橋杯 USACO milk

沒有找到oj的 直接把翻譯過的題目帶來 今天開始貪心演算法類的訓練了。不過看到前面那個雙重回文數的題目難度等級定為通過初賽,我就開始有興致去挑戰一下了,本來還說,可能還是什麼沒有什麼難度,就是會麻煩一點的東西。現在,我還就是想挑戰一下了。今天的題目依舊簡單。不多說了,直接上 典型貪心,排序,由小到大...

備戰藍橋杯 USACO crypt

從今天開始,有時間的話,至少做到每天破兩題。簡單的也就快一點。今天的題比較簡單,也比較粗暴。感覺在上一屆的藍橋杯遇到過類似的題型。爆搜。恐怖的5個迴圈。今天學到一種新的方法,hash函式的方法。不僅思路清晰了,編碼的速度也很快。很好用。1 將合法的數字標記 2 利用取餘數操作取數字判斷 3 根據資料...

藍橋杯備戰 階乘計算

問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相...