ccf 201909-2 小明种苹果(续) 以及出现的问题

目录

题目描述:

样例描述:

代码:

出现问题及解决办法:


 

题目描述:

样例描述:

代码:

#include <iostream>
#include <vector>
#include <cstring>

using namespace std;

int main() {
	int N;
	int T=0,D=0,E=0;
	int repeat;

	int a[1005];
	memset(a,0,sizeof(a));
	scanf("%d",&N); 
	for(int i=0;i<N;i++)
	{
		int temp=0;
		int dropNum;//一棵树上蔬果的数目
		int treeNum;//一棵树上原有的数目
		scanf("%d",&repeat); 
		scanf("%d",&treeNum);
		for(int j=1;j<repeat;j++)
		{
			scanf("%d",&dropNum);
			if(dropNum>0)//如果没蔬果
			{
				if(treeNum>dropNum)//发现掉落了
				{
					temp=1;
					treeNum=dropNum;
				}
			}
			else
			{
				treeNum+=dropNum; //如果是蔬果
			}	
		}
		if(temp==1)//掉果了,就D增加一
		{
			D++;
			a[i]=1;
		}
		T+=treeNum;
	}
	for(int i=2;i<N;i++)//判断是不是连着的三个
	{
		if(a[i-1]==1&&a[i-2]==1&&a[i]==1)
			E++;
	}
	if(a[0]==1&&a[1]==1&&a[N-1]==1)
		E++;
	if(a[0]==1&&a[N-2]==1&&a[N-1]==1)
		E++;

	printf("%d %d %d",T,D,E);
	return 0;
}

出现问题及解决办法:

1、一棵树可能重新统计多次,故会有多次掉落。所以,一颗树掉落果子了 只需要统计一次,这里我用了temp做跳板。

2、判断连续3个树的时候,我自以为3个树只需要记录一次E就可以了,然而这样是错的。。需要记录3次。

       举例:树1,2,3  E的次数为(1,2,3),(2,3,1),(3,2,1) 共3次。啊我个傻狗!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值