14藍橋杯 螞蟻感冒

2021-08-17 08:56:09 字數 565 閱讀 5182

貪心法

先將所有螞蟻位置按絕對值排序,並記錄第一只螞蟻所在的位置(陣列中的位置) 

兩隻螞蟻碰面後方向調換,其實和不調換一樣,題目只是計數,並沒有要求記錄哪些螞蟻感冒了

所以,有兩種情況。 

情況1,第一只感冒螞蟻朝向的那方沒有乙隻與它方向相反的螞蟻,輸出1。 

情況2,有的話,將感冒螞蟻朝向那方所有與它方向相反的螞蟻計數,並且將感冒螞蟻背後與它同向的螞蟻也計數。 

將上述兩種情況,左右方向各寫一次,便可求出解。(**應該可以再簡潔一點,我直接複製貼上了另乙個方向)

#include#include#include#includeusing namespace std;

int ans[51];

int n,count=1;

void check(int x)//計數

if(ok) //如有方向相反的螞蟻屬於情況2 }}

if(ans[x]<0)//螞蟻朝左方向時

if(ok)}}

} bool rule(int x,int y)//按絕對值排序規則

{ return abs(x)

藍橋杯 螞蟻感冒

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

藍橋杯 螞蟻感冒

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

藍橋杯 螞蟻感冒

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