CCF-CSP:201909-2小明种苹果(续)

题目

编号: 201909-2

试题名称: 小明种苹果(续)

时间限制: 1.0s

内存限制: 512.0MB

题目描述

??小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆。为了保证苹果的品质,在种植过程中要进行疏果操作。为了更及时地完成疏果操作,小明会不时地检查每棵树的状态,根据需要进行疏果。检查时,如果发现可能有苹果从树上掉落,小明会重新统计树上的苹果个数(然后根据之前的记录就可以判断是否有苹果掉落了)。在全部操作结束后,请帮助小明统计相关的信息。

输入格式

??从标准输入读入数据。
??第1行包含一个正整数\(N\),表示苹果树的棵数。
??第\(1+i\)行(\(1\le i\le N\)),每行的格式为\(m_i, a_{i1}, a_{i2},\dots , a_{im_i}\)。其中,第一个正整数\(m_i\)表示本行后面的整数个数。后续的\(m_i\)个整数表示小明对第\(i\)棵苹果树的操作记录。若\(a_{ij}(1\le i \le m_i)\)为正整数,则表示小明进行了重新统计该棵树上的苹果个数的操作,统计的苹果个数为\(a_{ij}\);若为零或负整数,则表示一次疏果操作,去掉的苹果个数是\(|a_{ij}|\)。
??输入保证一定是正确的,满足:

  1. \(a_{i1}>0\),即对于每棵树的记录,第一个操作一定是统计苹果个数(初始状态,此时不用判断是否有苹果掉落);
  2. 每次疏果操作保证操作后树上的苹果个数仍为正。

输出格式

??输出到标准输出。
??输出只有一行,包含三个整数\(T、D、E\)。其中,

  • \(T\)为全部疏果操作结束后所有苹果树上剩下的苹果总数(假设每棵苹果树在最后一次统计苹果个数操作后苹果不会因为疏果以外的原因减少);
  • \(D\)为发生苹果掉落的苹果树的棵数;
  • \(E\)为相邻连续三棵树发生苹果掉落情况的组数。
    ??对于第三个统计量的解释:\(N\)棵苹果树\(A_1,A_2, \dots ,A_N\)排列成一个圆,那么\(A1\)与\(A2\)相邻,\(A2\)与\(A3\)相邻,\(\dots\) ,\(A_{N-1}\)与\(A_N\)相邻,\(A_N\)与\(A_1\)相邻。如果\(A_{i-1},A_i,A_{i+1}\)这三棵树都发生了苹果掉落的情况,则记为一组。形式化的,有
    \[E=|{A_i | Drop(Pred(A_i) \wedge Drop(A_i)\wedge Drop(Succ(A_i))}|\]
    其中,\(Drop(A_i)\)表示苹果树\(A_i\)是否发生苹果掉落的情况,\(Pred(A_i)\)表示\(A_i\)的前一棵树\(A_{i-1}\)(如果\(i>1\))或者\(A_N\)(如果\(i=1\)),\(Succ(A_{i+1})\)表示\(A_i\)的后一棵树\(A_{i+1}\)(如果\(i<N\))
    或者\(A_1\)(如果\(i=N\))。

样例数据

样例1输入

4
4 74 -7 -12 -5
5 73 -8 -6 59 -4
5 76 -5 -10 60 -2
5 80 -6 -15 59 0

样例1输出
222 1 0

样例1解释
??全部操作结束后,第1棵树上剩下的苹果个数为\(74-7-12-5=50\),第2棵为\(59-4=55\),第3棵为\(60-2=58\),第4棵为\(59-0=59\)。因此\(T=50+55+58+59=222\)。
??其中,第3棵树在第2次统计之前剩下的苹果个数为\(76-5-10=61>60\),因此发生了苹果掉落的情况。可以检验其他的树没有这种情况,因此\(D=1\)。
??没有连续三棵树都发生苹果掉落的情况,因此\(E=0\)。

样例2输入

5
4 10 0 9 0
4 10 -2 7 0
2 10 0
4 10 -3 5 0
4 10 -1 8 0

样例2输出
39 4 2

样例2解释
??第1、2、4、5棵树发生了苹果掉落的情况,因此\(D=4\)。其中,连续三棵树都发生苹果掉落情况的有(5,1,2)和(4,5,1),因此\(E=2\)。

子任务

编号 N \(max\\{ m_i \\}\)
1,2 3 2
3,4 10 10
5,6 10 100
7,8 100 100
9,10 1000 1000
  • \(m_i\le 1000\),对所有 \(1\le i\le N\)
  • \(|a_{ij}| \le 10^6\),对所有 \(1\le i\le N,1\le j\le m\);

提示

  • 如果你的程序没有实现统计\(D\)和\(E\)的功能,请按照\(D=0,E=0\)输出结果,这样如果\(T\)的统计正确能够得到一部分分数。
  • 如果你的程序没有实现统计\(E\)的功能,请按照\(E=0\)输出结果,这样如果\(T\)和\(D\)的统计正确能够得到一部分分数。

解答

SiriYang‘s Blog | CCF-CSP:201909-2小明种苹果(续)

原文地址:https://www.cnblogs.com/SiriYang/p/12121197.html

时间: 2024-11-05 01:02:00

CCF-CSP:201909-2小明种苹果(续)的相关文章

小明种苹果 201909_1

试题编号: 201909-1 试题名称: 小明种苹果 时间限制: 2.0s 内存限制: 512.0MB 问题描述: 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 const int C=1001; 6 7 struct data 8 { 9 int ID; 10 int isum; 11 int leftNum; 12 }dat[C]; 13 14 bool cmp(struct data a,struct data b) 15

CCF-CSP:201909-1小明种苹果

题目 编号: 201909-1 试题名称: 小明种苹果 时间限制: 2.0s 内存限制: 512.0MB 题目描述 ??小明在他的果园里种了一些苹果树.为了保证苹果的品质,在种植过程中要进行若干轮疏果操作,也就是提前从树上把不好的苹果去掉.第一轮疏果操作开始前,小明记录了每棵树上苹果的个数.每轮疏果操作时,小明都记录了从每棵树上去掉的苹果个数.在最后一轮疏果操作结束后,请帮助小明统计相关的信息. 输入格式 ??从标准输入读入数据. ??第1行包含两个正整数\(N\)和\(M\),分别表示苹果树的

[CCF CSP]201909-2 小明种苹果(续)

模拟题,尝试用python3写了一发,发现不能ac,觉得可能是python写挂了,又用C++写了一遍,还是只能90分. 最后通过看他人的博客被点醒,N=3且3组都有掉落情况时,E=3!! 其实还是自己读题能力弱了,题意中有对第三个统计量的形式化解释: 是满足条件的元素个数. 另外,还需要注意总和数T可能爆int,需要开longlong(python无视) C++代码: #include<bits/stdc++.h> using namespace std; #define ll long lo

CSP 小明种苹果(续)201909-2

输入: 4 4 74 -7 -12 -5 5 73 -8 -6 59 -4 5 76 -5 -10 60 -2 5 80 -6 -15 59 0 输出: 222 1 0 输入: 5 4 10 0 9 0 4 10 -2 7 0 2 10 0 4 10 -3 5 0 4 10 -1 8 0 输出: 39 4 2 注意: 1.发生苹果掉落和疏果是两种不同的操作 发生苹果掉落(5 3) 疏果(5 -3) 2.一棵树可能出现多次苹果掉落的情况 比如:3 5 2 1(对于一棵树来说 有3个操作,原来有5个

CCF201909-1小明种苹果

解题思路:定义一个二维数组来存放输入的信息,第一列用来存放所有果树的初始值,然后遍历数组.具体思路见代码注释. 第一遍提交得了80分,看了半天才明白了原因,快被自己蠢死...... 定义数组应该为a[1000][1001],第一遍没有思考直接看了问题规模就定义成了a[1000][1000]. 有一列是专门用来放初始的果子数的呀啊喂......... #include<iostream> #include<cmath> using namespace std; int a[1000]

CCF201909-2 试题名称:小明种苹果(续)

首先阅读题目,看到关键词围成一个圆,就能想到约瑟夫问题的环问题,题目是要求我们统计在蔬果以后所有果树的的果子总量sum,苹果树在蔬果中掉落果子的棵树D(一棵树可能多次掉落果子,但是仍然仅仅记录为一棵),每连续三棵树树掉落的情况E import java.util.Scanner; public class Main_04 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int N

【算法题】CCF CSP第二题练习(更新中)

/* 试题编号:201912-2 试题名称:回收站选址 题目描述: 通过无人机航拍我们已经知晓了n处尚待清理的垃圾位置,其中第i(1<=i<=n)处的坐标为(xi,yi),保证所有的坐标均为整数. 我们希望在垃圾集中的地方建立些回收站.具体来说,对于一个位置(x,y)是否适合建立回收站,我们主要考虑以下几点: ·(x,y)必须是整数坐标,且该处存在垃圾: ·上下左右四个邻居位置,即(x,y+1).(x,y-1).(x+1,y)和(x-1,y)处,必须全部存在垃圾: ·进一步地,我们会对满足上述

hdu 4521 小明系列问题——小明序列 (间隔至少为d的LIS 两种解法)

先附上资源地址:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1. 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2. 假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工的时候,其他车间都必须停工

爱摘苹果的小明

爱摘苹果的小明 描述 小明家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,小明就会跑去摘苹果.小明有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知10个苹果到地面的高度,以及小明把手伸直的时候能够达到的最大高度,请帮小明算一下她能够摘到的苹果的数目.假设她碰到苹果,苹果就会掉下来. 输入 第一行输入N(0<N<100)表示测试数据组数,接下来每组测试输入包括两行数据.第一行包含10个100到200之间(包括100和200)的整数(以