题解 | #小白月赛62题解#

幼稚园的树

https://ac.nowcoder.com/acm/contest/47266/A

未完待续

以下代码均通过 pypy3 ac

A幼稚园的树

按照规则模拟即可

t=int(input())
for i in range(t):
    n=input()
    h=list(map(int,input().split()))
    a,k,b=map(int,input().split())
    m=int(input())
    for d in h:
        for j in range(m-1):
            d+=a
            if d>k:
                d=b
        print(d,end=' ')
    print()            

C数组划分

把两个数组的所有数的质因数收集起来,之后再比较

from typing import *
def div(arr:List[int])->List[int]:
    ans=[0]*(10**6+5)
    for k in arr:
        for i in range(2,k+1):
            if i*i>k:
                break
            if not k%i:
                ans[i]=1
                while not k%i:
                    k//=i
        if k>1:
            ans[k]=1
    return ans
n=input()
a,b=list(map(int,input().split())),list(map(int,input().split()))
arr1,arr2=div(a),div(b)
has=True
for i in range(len(arr1)):
    if arr1[i] and arr2[i]:
        has=False
        break
print('Yes' if has else 'No')

D子树的大小

每个子树的同一层子节点时连续数字,因此只需要向下逐层扩展组左右边界,直接统计符合要求的点的个数即可

def count(p:int,k:int,n:int)->int:
    if k==1:
        return n-p
    ans=0
    l,r=p,p
    while l<n:
        ans+=r-l+1
        l,r=l*k+1,min(n-1,r*k+k)
    return ans
t=int(input())
for i in range(t):
    n,k,m=map(int,input().split())
    q=list(map(int,input().split()))
    for qq in q:
        print(count(qq,k,n))
全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务