目录
题目详细:编辑
题目思路:
两种情况:
代码详解:
这个题目的关键在于对蚂蚁相遇
的时候情况的看待
两个蚂蚁相遇时候的情况
我们可以看作
他们相互穿过了彼此
假设相遇的蚂蚁其中的一只有感冒的话
相遇后就假设他们两个都变成感冒了
所以对于蚂蚁我们就只需要考虑
1.第一只感冒蚂蚁方向朝向的方向没有与他相反朝向的蚂蚁
这种情况,蚂蚁不会和任意一只蚂蚁相会遇见,故最终感冒的蚂蚁数目为1
2.第一只感冒蚂蚁方向朝向的方向有与他相反朝向的蚂蚁
那么这个时候就只需要考虑以第一只感冒蚂蚁为中心
两边朝向这只蚂蚁的数目就是会感冒的蚂蚁数目
具体情况大家可以通过上面提到的方法去模拟一下。
#include
#include
using namespace std;const int N=106;
int a[N];
int b[N];
int main(){int n;cin>>n;for(int i=1;i<=n;i++){scanf("%d",&a[i]);if(a[i]>0) b[i]=1;else b[i]=-1;}int index=abs(a[1]);int sum=1;int flag=0;for(int i=2;i<=n;i++){if(1==b[1]&&b[i]==-1&&indexa[i]) flag=1;}if(1==flag){for(int i=2;i<=n;i++){if(abs(a[i])>index&&-1==b[i]) sum++;if(abs(a[i])
PS:这种脑筋急转弯的题目还是要多练一下,防止脑袋生锈(doge)
上一篇:目标检测之YOLOv3算法分析
下一篇:Redis预分区