首页 > 其他分享 >蓝桥杯-蚂蚁感冒

蓝桥杯-蚂蚁感冒

时间:2024-05-07 22:01:27浏览次数:24  
标签:蚂蚁 int 左边 样例 感冒 蓝桥 ++

长 100 厘米的细长直杆子上有 n 只蚂蚁。

它们的头有的朝左,有的朝右。

每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒。

当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。

这些蚂蚁中,有 1 只蚂蚁感冒了。

并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。

请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。

输入格式

第一行输入一个整数 n, 表示蚂蚁的总数。

接着的一行是 n 个用空格分开的整数 Xi, Xi 的绝对值表示蚂蚁离开杆子左边端点的距离。

正值表示头朝右,负值表示头朝左,数据中不会出现 0 值,也不会出现两只蚂蚁占用同一位置。

其中,第一个数据代表的蚂蚁感冒了。

输出格式

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

数据范围

1<n<50,
0<|Xi|<100

输入样例1:

3
5 -2 8

输出样例1:

1

输入样例2:

5
-10 8 -20 12 25

输出样例2:

3

题解:

这题正常模拟的话, 比较麻烦, 而且容易出错, 这里我们换个思路~

  • 感冒的蚂蚁和正常的蚂蚁相撞后转向, 相当于这两只蚂蚁穿过对方, 继续按照原来的方向爬行, 正常的蚂蚁变的感冒
  • 设第一支感冒的蚂蚁是 x, 不论 x 是向左还是向右, x 左边的向左爬的蚂蚁 和 x 右边的向右爬的蚂蚁 都不会被感染

下面这句话, 结合着下图看比较好理解 --> (图中的 l 和 r 代表的是 x左边的向右爬的蚂蚁的数量 和 x右边的向左爬的蚂蚁的数量)
假设 x 向右, 那么 x 右边的 向左爬的蚂蚁一定被感染, 如果存在 "右边的 向左爬的蚂蚁", 那么 x 左边的向右爬的蚂蚁同样会被感染, 否则 "x 左边的向右爬的蚂蚁同样会被感染" 不会被感染

x 向左的话, 跟向右的情况相反, x左边向右的一定感染, 如果存在 "x左边向右的", 那么 x 右边向左的才会被感染, 否则不会


ac代码

标签:蚂蚁,int,左边,样例,感冒,蓝桥,++
From: https://www.cnblogs.com/xxctx/p/18178503

相关文章

  • 蓝桥杯-买不到的数目
    小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买10颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字......
  • 蓝桥杯国赛训练第一周
    P1491集合位置-洛谷|计算机科学教育新生态(luogu.com.cn)主要在于$A*$函数中估价函数,这里给出最好想也是我想出来的一种方法,也就是当黑白棋子各自都在对方的领域上,那么就可以考虑一种最小的消耗情况,也就是走一步顶两不,也就是黑白互换,那么此时所需要消耗的最小步数......
  • 【题解】爬山 蓝桥杯2024省B
    题目链接:P10429[蓝桥杯2024省B]拔河[蓝桥杯2024省B]拔河题目描述小明是学校里的一名老师,他带的班级共有\(n\)名同学,第\(i\)名同学力量值为\(a_i\)。在闲暇之余,小明决定在班级里组织一场拔河比赛。为了保证比赛的双方实力尽可能相近,需要在这\(n\)名同学中挑选......
  • 蓝桥杯-翻硬币
    小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用*表示正面,用o表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个......
  • 蓝桥杯-带分数
    100可以表示为带分数的形式:100=3+69258/714还可以表示为:100=82+3546/197注意特征:带分数中,数字1∼9分别出现且只出现一次(不包含0)。类似这样的带分数,100有11种表示法。输入格式一个正整数。输出格式输出输入数字用数码1∼9不重复不遗漏地组成带分数表示的......
  • 蓝桥杯-四平方和
    四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5=0^2+0^2+1^2+2^27=1^2+1^2+1^2+2^2对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0≤a......
  • 蓝桥杯-k倍区间
    给定一个长度为N的数列,A1,A2,…AN,如果其中一段连续的子序列Ai,Ai+1,…Aj之和是K的倍数,我们就称这个区间[i,j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入格式第一行包含两个整数N和K。以下N行每行包含一个整数Ai。输出格式输出一个整数,代表K倍......
  • 蓝桥杯-分巧克力
    儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi×Wi的方格组成的长方形。为了公平起见,小明需要从这N块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同......
  • 蚂蚁面试:Springcloud核心组件的底层原理,你知道多少?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 2024第十五届蓝桥杯网络安全赛项部分题目 WriteUp
    2024第十五届蓝桥杯网络安全赛项部分题目WriteUp爬虫协议根据提示,访问/robots.txt,得到敏感路径/38063b612387b10e22f4bd0d71a46a4e/,访问其中的/9de33df789dc91e984a091e6dce2dfb1得到flag。flag{494547b4-f13f-47de-b1a5-a99f20495cd7}packet使用过滤器tcpcontains"fla......