P8611 [蓝桥杯 2014 省 AB] 蚂蚁感冒 题解
一眼望去,这题怎么跟独木桥那题很像?
所以,我们认为这些蚂蚁都能够互相穿过,两只蚂蚁相撞可以看作两只蚂蚁互相穿过。患病的蚂蚁向右走,如果它右边的蚂蚁向左走,那这只蚂蚁就一定会被感染。患病的蚂蚁向左走,那他左边的蚂蚁向右走的就一定会被感染。
结论:与患病蚂蚁相向而行且在患病蚂蚁的运动方向上的蚂蚁一定会被感染。
建议完成此题后继续去做P1007。
#include<iostream>
#define range(n) for(int i=1;i<=n;i++)
using namespace std;
int n,x,y,ans;
int abs(int q){return (q<0? -q:q);}
int main(){
cin>>n>>y;
range(n-1){
cin>>x;
if((abs(x)<abs(y)&&x>0)||(abs(x)>abs(y)&&x<0)) ans++;
}
cout<<ans+1;
}