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

Posted 天不生夫子,万古如长夜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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 long
ll n,cnt=0,a;
const ll N=1000+5;
ll vis[N];
ll D,E,T;
int main()
{
    ll n,m;
    cin>>n;
    T=D=E=0;
    for(ll i=1;i<=n;i++)
    {
        cin>>m;
        cin>>a;
        ll temp=a;
        for(ll j=2;j<=m;j++)
        {
            cin>>a;
            if(a>0)
            {
                if(temp>a&&!vis[i])
                {
                    D++;
                    vis[i]=1;
                }
                temp=a;
            }
            else temp+=a;
        }
        T+=temp;
        if(i>=3&&vis[i-2]&&vis[i-1]&&vis[i])E++;
    }
    if(n>=3&&vis[1]&&vis[n-1]&&vis[n]) E++;
    if(n>=3&&vis[1]&&vis[2]&&vis[n])E++;
    cout<<T<<\' \'<<D<<\' \'<<E<<endl;
    return 0;
}

PYTHON3代码:

n=int(input())
T=0
D=E=0
vis=[]
for i in range(0,n):
    list=input().split()
    temp=int(list[1])
    vis.append(0)
    for j in range(2,len(list)):
        a=int(list[j])
        if(a>0):
            if(temp>a and vis[i]==0): 
                D+=1
                vis[i]=1
            temp=a
        else:temp+=a
    T+=temp 
    if(i>=2 and vis[i-2] and vis[i-1] and vis[i]):E+=1
if(n>=3 and vis[0] and vis[n-1] and vis[n-2]):E+=1
if(n>=3 and vis[0] and vis[1] and vis[n-1]):E+=1
print(T,D,E)

 

以上是关于[CCF CSP]201909-2 小明种苹果(续)的主要内容,如果未能解决你的问题,请参考以下文章

CCF-CSP C/C++ 201909-2 小明种苹果(续) 题解

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

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

CCF 201909-2 小明种苹果(续)100分

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

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