藍橋杯 NYOJ 990 螞蟻感冒

2021-07-23 13:54:44 字數 656 閱讀 6200

以前寫藍橋杯的時候不會寫,看了劉汝佳的uva 10881後發現好簡單

就是把螞蟻當作不會回頭,只是直接穿過

那麼兩個螞蟻穿過後就會讓另外乙隻也感冒

所以只需要判斷一下能穿過的螞蟻的數量

對於一開始感冒螞蟻的位置p,假設p>0

p會碰到右邊所有向左走的螞蟻,

那些在右邊被p碰到的螞蟻會去碰到它左邊所有向右走的螞蟻

結論(p>0):

1. ans+=p左邊與p正負相反的螞蟻數量

2.如果1的螞蟻存在,ans+=p右邊與p正負一樣的螞蟻

p<0結論也類似

ac**如下:

#include #include #include #include using namespace std;

int ant[50+5];

bool cmp(int i,int j){

return abs(i)>n){

int a;

for(int i=0;i0?1:-1;

for(int i=p+d;i=0;i+=d)

if(ant[i]*a<0) ok=true,ans++;

if(ok)

for(int i=p-d;i=0;i-=d)

if(ant[i]*a>0) ans++;

cout<

NYOJ990 螞蟻感冒

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

Nyoj 990 螞蟻感冒 思維)

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

藍橋杯 螞蟻感冒

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