问题重述:

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

输入格式:

   第一行输入一个整数n  (1  <   n  <   50),  表示蚂蚁的总数。 
  接着的一行是n个用空格分开的整数  Xi  (-100  <   Xi  <   100),  Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数  据代表的蚂蚁感冒了。

输出格式:

  要求输出1个整数,表示最后感冒蚂蚁的数目。

样例输入:


5  -2  8

样例输出:

1

样例输入:


-10  8  -20  12  25

样例输出:

在老赵的提醒下,首先相向而行的蚂蚁碰面后掉头可以看成是直接擦肩而过继续保持方向向前;对于蚂蚁有如下几种情况:
1.和感冒蚂蚁方向相反的两种情况:
(1)与感冒蚂蚁背道而驰,这类蚂蚁绝对不会被传染;
(2)与感冒蚂蚁相向而行,这类蚂蚁必然被传染;
2.和感冒蚂蚁同方向的两种情况:
(1)在感冒蚂蚁的前面,这类蚂蚁也不会被传染,因为所有蚂蚁等速,感冒蚂蚁追不上在其前方的蚂蚁;
(2)在感冒蚂蚁后面,首先这类蚂蚁又有两种可能,
a)如果存在1中的(2)那一类蚂蚁,则感冒蚂蚁先传染相向而来的蚂蚁,被传染的蚂蚁又传染第一只感冒蚂蚁后面的蚂蚁;
       b)如果不存在上述情况,感冒蚂蚁后面的蚂蚁也不会被传染;
据此得到程序如下:
import java.util.Arrays;
import java.util.Scanner;
public class Main{public static void main(String []arg){Scanner cin=new Scanner(System.in);while(cin.hasNext()){int n=cin.nextInt();int a[]=new int[n];for(int i=0;i<n;i++)a[i]=cin.nextInt();boolean flag=false;int sum=1;for(int i=1;i<a.length;i++){if((Math.abs(a[i])-Math.abs(a[0]))*a[0]>0 && a[0]*a[i]<0){sum++;flag=true;}}
          if(flag){for(int i=1;i<a.length;i++){if((Math.abs(a[0])-Math.abs(a[i]))*a[i]>0 && a[0]*a[i]>0)  sum++;}}System.out.println(sum);}cin.close();}
}

蚂蚁感冒问题暴力解决相关推荐

  1. 有意思的逻辑思维题(三)(hdu2211,蓝桥杯蚂蚁感冒)

    杀人游戏 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2211 题目描述: 现在已知有N个土匪站在一排,每个土匪都有一个编号,从1到N,每次杀人时给 ...

  2. 练——C语言练习蚂蚁感冒

    提示:自己做的可能复杂,请各位大佬指正 文章目录 一.题目 二.思路 三.实现的过程 1.主函数 2.初始感冒蚂蚁的设置 3.感冒蚂蚁的判定 总结 一.题目 长100厘米的细长直杆子上有n只蚂蚁.它们 ...

  3. IDEA——找不到或无法加载主类的一种暴力解决方法

    IDEA--找不到或无法加载主类的一种暴力解决方法 参考文章: (1)IDEA--找不到或无法加载主类的一种暴力解决方法 (2)https://www.cnblogs.com/jsjliyang/p/ ...

  4. 蓝桥杯 1454 蚂蚁感冒 (找规律)

    题目描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...

  5. nyoj990蚂蚁感冒

    //其实遇到返回和遇到穿过是一样的 //既然要相遇穿过,那与蚂蚁方向相反且在它前面的就会感染 //而前面那些又会感染与之方向相反且在它前面的(与原先蚂蚁同方向,在它后面的) //注意特殊情况  #in ...

  6. NYOJ 990 蚂蚁感冒

    蚂蚁感冒 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/ ...

  7. mysql deadlock found when trying to get lock暴力解决

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_38383877/arti ...

  8. 2014年第五届蓝桥杯 - 省赛 - C/C++大学A组 - G. 蚂蚁感冒

    标题:蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有 ...

  9. [蓝桥杯][历届试题]蚂蚁感冒(模拟)

    题目描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...

最新文章

  1. 分析Android :java.lang.UnsatisfiedLinkError: dlopen failed * is 32-bit instead of 64-bit
  2. 使用docker部署lnmp
  3. IOS开发基础之UI的喜马拉雅的项目-10
  4. 生物医学基础--右腿驱动
  5. vue之自行实现派发与广播-dispatch与broadcast
  6. 深入Java集合学习系列:HashSet的实现原理
  7. 下载与eclipse匹配的hibernate tools
  8. DirectX11 With Windows SDK--13 动手实现一个简易Effects框架、阴影效果绘制
  9. 如何在弹出的窗口中引发父窗口的postback事件
  10. C#基础List与ArrayList
  11. C语言基础练习(5)
  12. js实现微信浏览器关闭
  13. 运维工程师的主要工作职责
  14. 机器学习入门实战——决策树算法实战Titanic数据集
  15. 服务器3389信息,服务器3389远程记录查看
  16. 我的团长我的团可能的故事原现
  17. MyBatis入门系列(9) -MyBatis之SQL语句构建器
  18. word文档中统计总页数_如何在Google文档中查找页数和字数统计
  19. 列表页进入详情页再返回列表页时,显示默认第一页的bug修复
  20. 【Tensorflow】op的理解和自定义损失函数

热门文章

  1. 手机通讯录如何转移 QQ通讯录
  2. UGUI内核大探究(二)执行事件
  3. 国庆不去哪儿:用python爬虫爬取热门景点并生成热力图
  4. 12.1接收短信【斯纳克PACS医学影像云平台用户手册】
  5. 使用TeXpad iOS实现移动办公(二)
  6. 福州的宝贝原来都藏在这里
  7. 窥探现代浏览器架构(一)
  8. java 俄罗斯方块消除整行_帮忙看下我的俄罗斯方块满行删除方法,为嘛一次只能删除1行。。...
  9. android 变windows7,安卓手机变电脑(iDisplay) v3.1.0 英文安装版 Win7/WinXP
  10. 找到右下角弹广告的真凶