螞蟻感冒 思維 經典題

2021-10-02 10:04:23 字數 886 閱讀 9898

長 100 厘公尺的細長直桿子上有 n 只螞蟻。

它們的頭有的朝左,有的朝右。

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

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

這些螞蟻中,有 1 只螞蟻感冒了。

並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。

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

輸入格式

第一行輸入乙個整數 n, 表示螞蟻的總數。

接著的一行是 n 個用空格分開的整數 xi, xi 的絕對值表示螞蟻離開桿子左邊端點的距離。

正值表示頭朝右,負值表示頭朝左,資料中不會出現 0 值,也不會出現兩隻螞蟻占用同一位置。

其中,第乙個資料代表的螞蟻感冒了。

輸出格式

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

資料範圍

1做法:首先需要乙個思想,我們可以認為螞蟻碰面後就是直接穿過,這樣就比較方便計算,不用去模擬。

這樣我們可以先不管感冒螞蟻的方向,如果在它右邊,往右邊走,那麼速度一樣,一定追不上,所以只要統計在它右邊往左邊走的。這樣計算出左和右的螞蟻,但是需要對特殊情況進行處理。

#include 

#include

using namespace std;

int n;

intmain()

if((pivot <

0&& right ==0)

|| pivot >

0&& left ==0)

else

return0;

}

螞蟻感冒(思維)

x 國的乙個網路使用若干條線路連線若干個節點。節點間的通訊是雙向的。某重要資料報,為了安全起見,必須恰好被 兩次到達目的地。該包可能在任意乙個節點產生,我們需要知道該網路中一共有多少種不同的 路徑。源位址和目標位址可以相同,但中間節點必須不同。如下圖所示的網路。1 2 3 1 是允許的 1 2 1 ...

螞蟻感冒 思維

問題 1454 藍橋杯 歷屆試題 螞蟻感冒 時間限制 1sec 記憶體限制 128mb 提交 1623 解決 687 題目描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些...

思維 螞蟻感冒

螞蟻的問題都有相似性 從相遇等同於擦肩而過開始推導 如果第一只螞蟻是正值 那麼他後面所有負值螞蟻都會和他碰面 如果有的話 那麼這些螞蟻肯定會和他背後所有和正值的螞蟻碰面 同理 負值也如此 include using namespace std const int maxn 1e5 10 int ar...