蓝桥杯历届试题-蚂蚁感冒(C语言)

X683 蚂蚁 蚂蚁 阅读详情

题目描述

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

输入格式

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

输出格式

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

样例输入

5
-10 8 -20 12 25

样例输出

3

思路

因为蚂蚁速度相同,所以前面的蚂蚁不会被后面追上,又因为蚂蚁碰头后向后转,所以向左向右的蚂蚁数量是不变的,只要看总的蚂蚁数就行

定位感冒的蚂蚁的数量,然后找到前进方向上所有反方向行走的蚂蚁数量,就是被感染的蚂蚁数量,先找前进方向上的蚂蚁,如果没有蚂蚁发生碰撞,就只有这一只感染,如果有碰撞,则此蚂蚁掉头,再去找后面反方向前进的蚂蚁

因为所有的速度相同,所以后方的蚂蚁一定是由最初的蚂蚁感染的,最开始我没考虑到这一点,一直在找最边缘的蚂蚁,实际上根本没意义

#include<stdio.h>
#include<math.h>

int main() {
	int n;
	int i,j;
	int a[60];
	scanf("%d", &n);
	for (i = 0;i < n;i++) {
		scanf("%d", &a[i]);
		
	}
	int score = 1;//感染的蚂蚁数
	if (a[0] > 0) {//蚂蚁向右走
		for (i = 1;i < n;i++) {
			if (abs(a[i]) > a[0]&&a[i]<0) {//在右边向左走的蚂蚁全部感染
				score++;
			}

		}
		if (score == 1) {//没有与其他蚂蚁相遇就离开了
			printf("%d\n", score);
			return 0;
		}
		for (i = 1;i < n;i++) {//左边向右走的蚂蚁也感染
			if (a[i] > 0 && abs(a[i]) < abs(a[0])) {
				score++;
			}
		}
		
	}
	else if (a[0] < 0) {//蚂蚁向左走
		for (i = 1;i < n;i++) {
			if (a[i] < abs(a[0])&&a[i]>0) {//在左边向右走的蚂蚁全部感染
				score++;
			}
		}
		if (score == 1) {//没有接触
			printf("%d\n", score);
			return 0;
		}
		for (i = 1;i < n;i++) {//碰撞后掉头
			if (a[i]<0 && abs(a[i])>abs(a[0])) {//在右边向左走的蚂蚁全部感染
				score++;
			}
		}
		
	}
	printf("%d\n", score);

	return 0;
}

uva 10881(贪心) 题意:一个长度为L的木棍上有n只蚂蚁,给出了每只蚂蚁的初始位置和朝向,然后蚂蚁开始行走,如果两只蚂蚁相撞,就立刻掉头,直到掉下木棍,问t秒后每只蚂蚁的位置和状态。 题解:因为每只蚂蚁会因为碰撞而掉头,所以相对位置是不变的,为了更容易考虑计算,那么相撞的蚂蚁可以看做是对穿而过,得到输出结果时只要按初始的相对位置再对应上不同的蚂蚁就可以了。 #include #include using na 阅读详情

相关推荐

Java实现算法竞赛入门经典例题-蚂蚁

问题描述 一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒。 当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计)。 给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂蚁的位置。 输入格式 输入的第一行为数据组数。每组数据的第一行为3个正整数L, T, n(0≤n≤10 000);以下n行每行描述一只蚂蚁的初始位置, 其中,整数x为蚂蚁距离木棍左端的距离(单位:厘米...

南 墙 1万+

题目 1454: [蓝桥杯][历届试题]蚂蚁感冒

题目描述 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。 输入 第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。 接着的一行是n个用空格分开的整数 Xi (-100 < Xi <

程序员贺加贝的博客 353

蚂蚁与木棍问题仿真

一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒。当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计)。给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂蚁的位置。 程序给出了仿真结果,最后的图像显示需要opencv.

蚂蚁相遇问题的巧解

题目:n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,他们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离为Xi,但不知道它当前的朝向,请计算所有蚂蚁落下竿子所需的最短时间和最长时间。

qzq2514的博客 6797

蚂蚁问题 C++

很简单的蚂蚁问题实现,对于面向对象的学习时做的一个小的实验

从零构建知识图谱:本体工程与知识建模实战指南

本文是一份从零构建知识图谱的实战指南,重点阐述了知识建模与本体工程的核心地位。文章详细介绍了如何使用Protégé工具进行本体设计,包括定义领域、复用现有本体、构建类层次与属性约束,并讲解了如何利用D2RQ工具将关系数据库数据转换为RDF三元组,最终通过Apache Jena Fuseki搭建SPARQL端点进行知识查询与推理,让知识图谱真正“活”起来。

weixin_29057695的博客 568

C语言网_1454:[蓝桥杯][历届试题]蚂蚁感冒

题目 1454: [蓝桥杯][历届试题]蚂蚁感冒 时间限制: 1Sec 内存限制: 128MB 题目描述 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。 输入 第一行输入一个整数n (1 < n < 50), 表示蚂蚁的

qq_45770655的博客 416

基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制与龙伯格观测器设计​

本文介绍了基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制方法,重点讲解了龙伯格观测器的设计与实现。主要内容包括:1)系统架构与数学推导,通过静止坐标系状态方程和极点配置构建观测器;2)Simulink建模步骤,从电机模型搭建到观测器核心代码实现;3)仿真结果对比分析,显示龙伯格观测器相比滑模观测器具有更好的平滑性和抗噪能力;4)工程部署建议,包括参数在线辨识、低速补偿策略和代码生成优化。该方法实现了全速域无感运行,稳态转速误差小于1%,为低成本高可靠性电机控制提供了有效解决方案。

amy_mhd的博客 161

蚂蚁感冒c语言编程,[蓝桥杯][历届试题]蚂蚁感冒 (C语言代码)

解题思路:注意事项:参考代码:#include int abss(int s); //取绝对值int main() {int n, i, count,flag = 0;int a[50];scanf("%d", &n);for (i = 0; i < n; i++) {scanf("%d", &a[i]);}count = 0;//首先分两种情况:第一只感冒的蚂蚁头朝左还...

weixin_35676745的博客 404

【IC】Redhawk-SC输入件配置

Redhawk sc

u011808788的博客 1776

新卡尝鲜记:RTX 5070Ti适配PyTorch生态的实战避坑指南

本文分享了RTX 5070Ti适配PyTorch生态的实战经验。针对CUDA 12.8兼容性问题,详细介绍了安装PyTorch Nightly版本、手动编译xformers库以及寻找PyTorch3D第三方预编译包的完整流程与解决方案,帮助用户快速搭建可用的深度学习开发环境。

weixin_29094775的博客 287

蚂蚁感冒c语言编程,[蓝桥杯][历届试题]蚂蚁感冒-题解(C语言代码)

解题思路:注意事项:参考代码:#include#include#includeint bu(int n){return n+1;}int main(){int b[100]={0},t,k,i,j,m,h,n,sum,a[100]={0};scanf("%d",&n);m=n;for(i=0;iscanf("%d",&a[i]);k=a[0];for(i=0;ifor(j=i+1;...

weixin_39901077的博客 243

FFmpeg硬件加速实战:VAAPI驱动配置全攻略(含NVIDIA/Intel避坑指南)

本文详细解析了在Linux环境下配置FFmpeg使用VAAPI接口实现硬件加速的完整流程。针对NVIDIA、Intel等主流显卡,提供了从驱动安装、环境变量设置到多显卡切换的实战指南,并重点解决了闭源驱动冲突、国产系统适配等常见问题,帮助用户有效提升视频处理性能。

weixin_29306011的博客 453

蚂蚁感冒c语言编程,蓝桥杯历届试题 蚂蚁感冒(模拟版+非模拟板)---C语言—菜鸟级...

/*问题描述长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。...

weixin_35193131的博客 287

linux 内核OOM问题定位-SLAB_DEBUG

首先看slabinfo按的size排序查看 slub object,可以查看 space 总占用大小,及objects个数判断泄漏点 为kmalloc-128。那个泄露多看/sys/kernel/debug的slab/kmalloc*-的alloc-traces和free-traces。SLAB或者SLUB有一个用就可以,改menuconfig没有clean会覆盖之前的更改,现在看一下编译的过程。或者配置defconfig,配置完之后需要clean后再编译。1,配置menuconfig。

陌上花开缓缓归以的博客 898

三臂杆大型液压机械臂集中式ADRC控制系统设计

本文设计了一种用于三臂杆液压机械臂的集中式自抗扰控制(ADRC)系统。该系统通过建立包含惯性矩阵、科氏力、重力及摩擦力的非线性动力学模型,并集成液压系统传递函数,构建了完整的系统模型。控制方案采用跟踪微分器安排过渡过程,扩张状态观测器实时估计系统状态和总扰动,以及非线性状态误差反馈生成控制量。MATLAB实现展示了集中式ADRC控制器的核心结构,包括参数定义、跟踪微分器、扩张状态观测器和非线性反馈模块的设计。该系统能有效处理多关节耦合效应,实现三输入三输出的MIMO控制,具有抗干扰能力强、响应速度快的特点。

huanghm88的专栏 269

蓝桥杯历届试题 蚂蚁感冒(模拟版+非模拟板)---C语言—菜鸟级

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

Five—菜鸟级的博客 1541

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

c语言编程一只蚂蚁,[蓝桥杯][历届试题]蚂蚁感冒 (C语言描述 非模拟版)---------------C语言——菜鸟级...

解题思路:思路:看看图 有什莫想法黑色代表 首只感冒蚂蚁 红色代表 会感冒蚂蚁 蓝色代表 不会感冒蚂蚁向碰头 都转向 可看作 都不转向 看成擦肩而过图 1 2 为一般情况 3 4 为特殊情况 仔细想想 或画图 看看(两只蚂蚁相遇各自反向可以看作是两只蚂蚁分别继续前进,然后假如感冒蚂蚁向左行,则会感染它左边所有向右行的蚂蚁,因为它继续向左行,别感染的第一只蚂蚁继续向右行,感染所有它右边向左行的蚂蚁。...

weixin_36353849的博客 252

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

问题 1454: [蓝桥杯][历届试题]蚂蚁感冒

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

知足常乐的博客 551

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

蓝桥杯 - 历届试题 蚂蚁感冒(非模拟)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T119 时间限制:1.0s   内存限制:256.0MB 问题描述   长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。   每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。   当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。   这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时...

ityanger的技术栈 2633

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

算法-蓝桥杯习题(七)

蓝桥杯习题 蓝桥杯练习系统习题加答案更新新地址(已更新200左右习题) http://blog.youkuaiyun.com/rodestillfaraway 目录 算法训练(详见 算法-蓝桥杯习题(一))Go 算法训练(详见 算法-蓝桥杯习题(二))Go 算法提高(waiting...) 历届试题(详见 算法-蓝桥杯习题(六))Go 历届试题(详见 算法-蓝桥杯习题(七))...

weixin_30522095的博客 1049

[蓝桥杯][历届试题]蚂蚁感冒

文章目录题目描述输入输出样例输入样例输出C语言AC代码 题目描述 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。 输入 第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。 接着的一行是n个用空格分开的整数

qq_43610614的博客 284

蓝桥杯 历届试题 蚂蚁感冒

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

dai_ma_dong的博客 162

蓝桥杯 —— (历届试题)蚂蚁感冒

问题描述: 在长为100米的直杆上,有 n 只蚂蚁,它们分别向左向右爬动,它们的速度是一样的。但是当两只蚂蚁向撞时, 它们都会向相反方向爬去。现在有一只蚂蚁感冒了,给出各个蚂蚁所在的位置,求感冒蚂蚁数? 输入格式: line1: 输入蚂蚁总数 line2: ...

嘻哈少华 450
上一篇: 蓝桥杯历届试题-翻硬币(C语言)
下一篇: 整除的尾数(C语言)
Ehell
博客等级 码龄4年 23粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值