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

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

筛选

1454蚂蚁感冒

解题思路:首先将蚂蚁位置按照绝对值从小到大排序。将蚂蚁碰撞掉头问题等效问传过问题,若碰撞的蚂蚁中其中一只感冒,相当于与另一只相互穿过身体,而后两只蚂蚁均感冒。未感冒的蚂蚁碰撞同理。于是,感冒的蚂蚁总数为:在初始感冒蚂蚁身前相向而行的蚂蚁数+在初始感冒蚂蚁身后同向而行的蚂蚁数量+初始感冒蚂蚁。

模拟麻烦 找规律

摘要:解题思路:注意事项:参考代码:#include <iostream>#include <algorithm>#include <math.h>using namespace std;int a[100……

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

摘要:解题思路:1.蚂蚁是相同的,碰面时可以看作只传染了感冒,没有反向而是继续向前走。2.当q[0]>0时,如果它的右边的蚂蚁向左走(q[i]<0&&fabs(a[i])>q[0]),即一定会与q[0]相遇……

c++蚂蚁感冒

摘要:解题思路:记录第一只蚂蚁的位置和方向,因为速度都是一样的,所以在(蚂蚁前面&&方向相同的蚂蚁)||(蚂蚁后面&&方向相反的)一定不会被感染                            

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

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

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

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

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

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