小思維題 螞蟻感冒 藍橋杯

2021-10-09 17:55:12 字數 1254 閱讀 4122

[螞蟻感冒](
description

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

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

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

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

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

input

第一行輸入乙個整數n (1output

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

samples

input

35-

28

output

1input

5-10

8-2012

25

output

3第一只螞蟻是感冒的,其次,兩隻螞蟻在相遇的時候,相互掉頭,這時候可以看做是繼續向前走,當成穿過對面的螞蟻,這樣的結果是等效的。

因為所有的螞蟻速度都是相等的,所以之後方向相反的情況才會相遇並且傳染。

那麼來說,如果第一號螞蟻如果是向右走的,那麼他右面的螞蟻中向左走的就會被感染,此時要加上這只螞蟻右面的螞蟻中向左走的螞蟻數量;如果一號螞蟻是向左走的,那麼在這只螞蟻左面的螞蟻中向右走的螞蟻就要被感染,此時數量要加上在這只螞蟻左面並且向右走的螞蟻的數量。

特殊的情況是如果上面的兩種情況中,有一種右面沒有螞蟻出現,此時就是這螞蟻自己感冒,輸出 1

main_code

int n=read;

for(

int i=

1;i<=n;i++

) a[i]

=read;

int t1=

0,t2=0;

for(

int i=

2;i<=n;i++)if

(a[1

]<

0&& t1 ==

0) cout<<

1

if(a[1]

>

0&& t2 ==

0) cout<<

1

藍橋杯 螞蟻感冒

時間限制 1 sec 記憶體限制 128 mb 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你...

藍橋杯 螞蟻感冒

問題描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只...

藍橋杯 螞蟻感冒

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了...