藍橋杯 C C 校內預選賽 螞蟻爬桿 傳染感冒

2021-09-02 08:20:22 字數 1097 閱讀 6213

今天參加藍橋杯的校內預選賽,全程只有乙個感覺,自己真的是菜的一比,未來要努力了,說說我做出來的第一道題吧,這道題還是很有意思的,看了一遍題目,已經有個大致思路了;

但要注意的是,當螞蟻的頭向右時,並且右邊有向左的螞蟻,這是還要考慮上它左邊向右的螞蟻也會感冒;當然頭向左時也要注意當左邊有向右的螞蟻時,右邊有沒有向左的螞蟻;

下面是問題的具體描述

【問題描述】

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。 

每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺/秒。

當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。

這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。

請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了感冒。

【資料格式】

第一行輸入乙個整數n (1 < n < 50), 表示螞蟻的總數。

接著的一行是n個用空格分開的整數 xi (-100 < xi < 100), xi的絕對值,表示螞蟻離開桿子左邊端點的距離。正值表示頭朝右,負值表示頭朝左,資料中不會出現0值,也不會出現兩隻螞蟻占用同一位置。其中,第乙個資料代表的螞蟻感冒了。

要求輸出1個整數,表示最後感冒螞蟻的數目。

樣例輸入:

35 -2 8

樣例輸出:

1樣例輸入:

5-10 8 -20 12 25

樣例輸出:

3

#include#includeusing namespace std;

int main()

for(int i=1;i0 && (abs(a[i])>a[0] && a[i]<0)||(a[i]0))

//螞蟻的頭向左時要先看左邊有沒有向右的螞蟻,也要注意當左邊有向右的螞蟻時,

//右邊有沒有向左的螞蟻;

else if(a[0]<0 && (abs(a[0])>abs(a[i]) && a[0]+a[i]<0)

||( abs(a[0])+abs(a[i])<0 && abs(a[i])>abs(a[0]) && a[i]<0))

}cout《繼續努力,朝著夢想前進。。。

螞蟻感冒 藍橋杯校內賽

歷屆試題 螞蟻感冒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,...

Henau藍橋杯校預選賽部分題解(12 3)

昨日的校預選賽,打到自閉。不多說了,回憶起來都是淚。水平有限,先放部分題題解 參考大佬的 等其他幾道研究 明白了陸續更新。簡單的模擬題,問n的二進位制有多少位。每次除以2,計數器 即可。includeusing namespace std int main cout 開乙個陣列記錄每個數字出現的次數...

關於湖南工業大學「藍橋杯」預選賽

題目整體來說就是水,對於我這個沒怎麼學資料結構,哈夫曼神馬的人來說也是這樣。下面開始分析一下這次的題目 1 陣列去重 題目大意 給一串int型別資料,要求去掉中間相同的資料,保持原有順序。這道題。我直接開了乙個能爆掉int的bool型陣列用來判斷是否已經存在該數。存在直接忽略。就這樣。2 數制轉換 ...