牛为什么过马路

本文探讨了关于奶牛过马路行为的科学研究,通过农夫约翰的观察记录,揭示奶牛穿越马路次数的计算方法。通过数组追踪每头牛的位置变化,解答了一个看似平凡实则蕴含科学原理的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

牛为什么过马路

题目

尽管科学界已经深入探究了鸡为什么过马路这一问题,令人惊讶的是,关于牛过马路的的研究文献却很少发表。

农夫约翰很清楚这一问题的重要性,当一所当地的大学联系他,要求他协助进行一项关于奶牛为什么要过马路的科学研究时,他非常激动并热心的表示愿意帮忙。

作为研究的一部分,约翰被要求记录下他的每头奶牛穿过马路的次数。

他仔细记录了奶牛的位置数据,在一天时间里,他进行了 N 次观察,每次观察都会记录一头牛的 ID (约翰共有 10 头牛,ID 从 1 到 10)以及牛在路的哪一边。

根据约翰记录的数据,请帮助他计算可以确定的奶牛穿过马路的次数。

当连续观察到一头奶牛在道路的两侧时,就可以确定它穿过了一次马路。

输入格式

第一行包含整数 N。

接下来 N 行,用来描述观察结果,首先包含一个整数表示观察奶牛的 ID,然后包含一个整数 0 或 1,0 表示它在马路一边,1 表示它在马路另一边。

输出格式

输出可以确认发生的穿过马路的次数。

数据范围

1≤N≤100,

输入样例:
8
3 1
3 0
6 0
2 1
4 1
3 0
4 0
3 1
输出样例:
3
样例解释

在此样例中,3 号奶牛穿过马路两次,先 1→0,然后 0→1。

4 号奶牛穿过马路一次 1→0。

2 号和 6 号奶牛没有穿过马路。

思路

开数组来表示这头牛上次观察的时候在哪一边

读入当前位置的时候,只需和上次的位置进行比较,如果在同一侧就不用+1,如果不在同一侧就+1

AC代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;

const int N=11;

int n;
int side[N];


int main()
{
	memset(side,-1,sizeof side);
	
	cin>>n;
	
	int res=0;
	while(n--)
	{
		int id,p;
		cin>>id>>p;
		if(side[id]!=-1&&side[id]!=p)
		{
			res++;
		}
		side[id]=p;
	}
	
	cout<<res<<endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值