题解 1454: 蓝桥杯历届试题-蚂蚁感冒

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯历届试题-蚂蚁感冒-题解(C语言代码)

黑色代表感冒的蚂蚁,红色代表会被感冒的蚂蚁,绿色代表不会被感冒的蚂蚁在上面这种情况下:黑色的蚂蚁方向向右,它右边与它方向相反的蚂蚁都会被感染(记作cou1),被感染的蚂蚁反向(也就相当于一个向左,一个向右,可以看成按原方向走),被感染的蚂蚁会感染与它方向相反的蚂蚁(记作cou2)则当cou1>0时:被

蓝桥杯历届试题-蚂蚁感冒-题解(C++代码)

解题思路:第一只蚂蚁不管方向朝哪它右边的蚂蚁只要向左走就可能碰撞感染(特殊情况除外),同样,第一只蚂蚁左边的蚂蚁只要朝右边走也可能被感染,这样就很容易得到这样的公式ans=左边蚂蚁向右走的数量+右边蚂蚁向左走的数量+第一只蚂蚁本身=right+left+1;特殊情况是,

蓝桥杯历届试题-蚂蚁感冒-题解(C++代码)20行简简单单,思路清晰(有注释,有讲解)

姑且把感冒的蚂蚁,叫做感染源。如果说感染源向一个方向爬,那么和他对着爬的都将感冒。(第一个被传染的,继续向着那个方向爬,一定会传染所有对着爬的)如果感染源传染过一个以后,那么跟着他屁股后面的蚂蚁都将感冒(被传染后,感染源调头,所有刚刚跟在屁股后面的都变成了对着他爬的)如果说感染源前面都是同向或者没有蚂

蓝桥杯历届试题-蚂蚁感冒-题解(C++代码)

长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。

蓝桥杯历届试题-蚂蚁感冒-题解(C++代码)

**解题思路描述:(1)首先将原始数据按其绝对值排序,例如样例排序为8-10122025(2)查找到原始数据中感冒的那只蚂蚁的下标,将对应的标记位置1,此时其它蚂蚁的感冒标记位为0(3)当排序数据列表的size()>1时,执行循环:检查当前状态是否存在需要转动方向,

蓝桥杯历届试题-蚂蚁感冒-题解(C语言代码)

分为两种情况:(只控制单个变量)1.病原体的右边或者是左边全是跟它同一个方向的蚂蚁,那么感冒的蚂蚁数量就是1(本身);2.如果病原体是向左走的话,那么它的左边的所有蚂蚁都向右走的都会被感染,同理,如果病原体向右走,那么它右边的所有向左走的蚂蚁都会被感染,