蚂蚁感冒(简单数论)
长 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
核心思想:虽然题目给的意思蚂蚁相撞之后会掉头,但由于蚂蚁相撞之后的速度和状态都一样,因此可以看作穿过去了,这样之后就很好分析了,如下图
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=55;
int arr[N];
int main()
{int n;cin>>n;for(int i=0;i<n;i++) cin>>arr[i];int right=0,left=0;//分别表示在感染蚂蚁的左边往右走 和 在右边往左走的蚂蚁数量for(int i=1;i<n;i++){if(abs(arr[i])<abs(arr[0])&&arr[i]>0) left++;//abs函数表示取绝对值else if(abs(arr[i])>abs(arr[0])&&arr[i]<0) right++;}if((arr[0]<0&&left==0)||(arr[0]>0&&right==0)) cout<<"1"<<endl;else cout<<left+right+1<<endl;return 0;
}
蚂蚁感冒(简单数论)相关推荐
- SDNU 1206.蚂蚁感冒 【代码如此简单,思维练习】【7月29】
蚂蚁感冒 Description 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行 ...
- 2014年第五届蓝桥杯 - 省赛 - C/C++大学A组 - G. 蚂蚁感冒
标题:蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有 ...
- [蓝桥杯][历届试题]蚂蚁感冒(模拟)
题目描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...
- java 蓝桥杯 蚂蚁感冒
问题描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...
- 练——C语言练习蚂蚁感冒
提示:自己做的可能复杂,请各位大佬指正 文章目录 一.题目 二.思路 三.实现的过程 1.主函数 2.初始感冒蚂蚁的设置 3.感冒蚂蚁的判定 总结 一.题目 长100厘米的细长直杆子上有n只蚂蚁.它们 ...
- 蚂蚁感冒 (acwing)
文章目录 蚂蚁感冒 思路 AC代码 蚂蚁感冒 长 100 厘米的细长直杆子上有 n 只蚂蚁. 它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒. 当两只蚂蚁碰面时,它们 ...
- 蓝桥杯 1454 蚂蚁感冒 (找规律)
题目描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...
- nyoj990蚂蚁感冒
//其实遇到返回和遇到穿过是一样的 //既然要相遇穿过,那与蚂蚁方向相反且在它前面的就会感染 //而前面那些又会感染与之方向相反且在它前面的(与原先蚂蚁同方向,在它后面的) //注意特殊情况 #in ...
- NYOJ 990 蚂蚁感冒
蚂蚁感冒 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/ ...
最新文章
- R语言配对图可视化:配对图(pair plot)可视化(根据分类变量的值为散点图上的数据点添加颜色和形状、Add color and shape by variables)
- php判断一个数是否是回文数,每周一道算法题001:回文数
- “外部质量”还是“内部质量”
- java添加时间,如何通过Java中的addHours()方法添加时间
- 嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建
- codeforces gym-101741 Subsequence Sum Queries 分治+离线
- 《大数据》2015年第3期“网络大数据专题”——网络表示学习(下)
- oracle安全性规则,[ORACLE ]安全性
- 完美解决wordpress邮件链接无效的问题
- 启用文件系统缓存,提高Tuxera NTFS运作性能
- HashTable VS Dictionary
- CAD中 OLE不能旋转_【设计图文】大空间旋转喷头零件的数控加工工艺设计、编程与加工(有全套cad图+程序+中英文翻译)...
- 杭电acm 4282 A very hard mathematic problem
- python脚本编写测试用例
- HashSet判断重复项原理
- 对随机数去重并进行排序 java
- Using the Scheduler Application - JDE Scheduler Job 原理
- JS手写IndexOf
- 项目管理小小知识点总结
- 星巴克公司员工股权激励机制