CCF-CSP备考记录:201909-2 小明种苹果(续)

CCF-CSP备考记录:201909-2 小明种苹果(续)

由于最近在备考2020年三月份的CCF,刚开始刷真题,感觉需要把自己碰到的一些问题记录下来,既能方便自己回头翻阅,也给大家提供一些经验教训。
**本人第一次写博客,如有不足之处还望留言批评指正。**

题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思路分析

整体思路
	用数组存储果树的数据,依次读取。
	如果数据大于零,则比较数据和当前苹果数量,数据小于当前苹果数量则意味着出现掉果,掉果数量加一,并在记录数组中做标记;
	数据小于零,则用当前苹果数量加上蔬果数量。
	计算连三颗果树掉果情况时,在记录数组中,i从0~n,第i、(i+1)%n、(i+2)%n个都有标记时,组数加一。
经验总结
一颗果树可能出现**多次掉果**情况,但在掉果数量上只能**记录一次**!

100分c++代码:

#include <iostream>
using namespace std;
#define M 1002
int n,m,nb[M]= {0},dro[M]= {0};
int all=0,drop=0,e=0;
int tmp=0;
int main(int argc, char** argv) {
	cin>>n;
	for(int i=0; i<n; i++) {
		cin>>m;
		for(int j=0; j<m; j++) {
			cin>>nb[j];
		}
		tmp=nb[0];
		for(int j=1; j<m; j++) {
			if(nb[j]>0) {
				if(nb[j]<tmp) {
					if(dro[i]==0) {
						drop++;//有掉果,记录一次即可,不可多次记录 !!!!! 
						dro[i]=1;//记录
					}
					tmp=nb[j];
				}

			} else tmp+=nb[j];
		}
		all+=tmp;
	}
	if(drop>=3)
		for(int i=0; i<n; i++) {
			if(dro[i]&&dro[(i+1)%n]&&dro[(i+2)%n]) e++;
		}

	cout<<all<<" "<<drop<<" "<<e;
	

THE END!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值