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次。啊我個傻狗!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章