貪心法
先將所有螞蟻位置按絕對值排序,並記錄第一只螞蟻所在的位置(陣列中的位置)
兩隻螞蟻碰面後方向調換,其實和不調換一樣,題目只是計數,並沒有要求記錄哪些螞蟻感冒了
所以,有兩種情況。
情況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只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了...