[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)

 

posted @ 2020-03-26 11:53  aq_seabiscuit  阅读(216)  评论(0编辑  收藏  举报