CCF201909-2小明种苹果(续)_#include

CCF201909-2小明种苹果(续)_ios_02

 

 

 

CCF201909-2小明种苹果(续)_#include_03

 

 

 

解题思路:解题思路很简答,就是用数组将数据存起来然后再进行统计,具体思路就见代码注释,记录这道题的是为了警示自己好好审题啊......

审题有问题,写题火葬场啊.......以为每棵树就疏一次果,把D和小明统计疏果有落果的次数混为一谈,怎么提交都只有50分还一直再挑统计E的毛病.....

#include<iostream>

using namespace std;
int a[1005][1005];
int b[1005] = {0};//每棵树是否有落果的统计

int main() {
int n;//共几棵树
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i][0];//进行了几次操作
for (int j = 1; j <= a[i][0]; j++) {
cin >> a[i][j];
}
}
int per_num = 0;//每棵树的苹果数
int sum_num = 0;//最后的总剩余苹果数
int dgcount = 0;//有果实掉落的苹果树的棵树
for (int i = 0; i < n; i++) {
per_num = a[i][1];//初始苹果的情况
for (int j = 2; j <= a[i][0]; j++) {
if (a[i][j] < 0)//疏果的情况
per_num += a[i][j];
else if (a[i][j] > 0) { //统计果子的情况
if (a[i][j] != per_num) {//有落果的情况,掉果的棵树的统计不能在这,因为可能一棵树统计多次
b[i] = 1;
}
per_num = a[i][j];
}
}
sum_num += per_num;
}
for (int i = 0; i < n; i++) {
if (b[i]) {
dgcount++;
}
}
//判断连着三棵树都掉果的组数
int e = 0;
for (int i = 0; i <= n - 2; i++) {
if (b[i] && b[i + 1] && b[i + 2]) {
e++;
}
}
if (b[n - 2] && b[n - 1] && b[0]) e++;
if (b[n - 1] && b[0] && b[1]) e++;

cout << sum_num << " " << dgcount << " " << e << endl;
system("pause");
return 0;

 

唯有热爱方能抵御岁月漫长。