阿里笔试4.8

阿里笔试4.8号

一道ac一道15%

data = list(map(int,input().split()))
T = data[0]

for _ in range(T):
    [n,m,a,b] = list(map(int,input().split()))
    if b==1:
        print(min(n//a,m))
        continue
    if n<a:
        print(0)
        continue
    elif n==a:
        print(min(b,m))
        continue
    if n*b>=m*a:
        print(m)
    else:
        print(n*b//a)

运气AC,推了一下,某些状态下所有木偶都能干掉,然后排除一些特殊情况

def solution(matrix, k, n):
    directions = [[0,1],[1,0],[0,-1],[-1,0]]
    max_re = [0]
    def dfs(i, j, re):
        for dire in directions:
            for step in range(1,k+1):
                new_i, new_j = i+step*dire[0],j+step*dire[1]
                if 0<=new_i<n and 0<=new_j<n:
                    if matrix[new_i][new_j]>matrix[i][j]:
                        max_re[0] = max(re+matrix[new_i][new_j],max_re[0])
                        dfs(new_i, new_j, re+matrix[new_i][new_j])
                else:
                    break
    dfs(0,0,matrix[0][0])
    return max_re[0]

data = list(map(int,input().split()))
T = data[0]

for _ in range(T):
    [n, k] = list(map(int,input().split()))
    matrix = []
    for i in range(n):
        matrix.append(list(map(int,input().split())))
    print(solution(matrix,k,n))

15%,显示的超时,没有思路了,可能python加递归就是这样。555

def solution(matrix, k, n):
    directions = [[0,1],[1,0],[0,-1],[-1,0]]
    dp = [[-1]*n for _ in range(n)]
    def dfs(i, j):
        flag = 0
        re = matrix[i][j]
        temp_max = matrix[i][j]
        for dire in directions:
            for step in range(1,k+1):
                new_i, new_j = i+step*dire[0],j+step*dire[1]
                if 0<=new_i<n and 0<=new_j<n:
                    if matrix[new_i][new_j]>matrix[i][j]:
                        if dp[new_i][new_j]==-1:
                            temp_ans = re + dfs(new_i, new_j)
                        else:
                            temp_ans = re + dp[new_i][new_j]
                        temp_max = max(temp_max, temp_ans)
                else:
                    break
        dp[i][j] = temp_max
        return temp_max
    dfs(0,0)
    print(dp)
    return dp[0][0]

这个应该就能AC了吧,加上dp存储一些已经确定过的点,idea是别人的

#阿里笔试2020##阿里巴巴##笔试题目#
全部评论
大佬大佬,攻击范围的含义把我绕进去了
点赞 回复 分享
发布于 2020-04-08 17:14
大佬能把第一题题目简单描述一下么?
点赞 回复 分享
发布于 2020-04-08 17:16
🙃第一题我证明了好久这个,发现证不出来就没管了,没想到这么简单,好后悔啊,大家都AC的题我爆0
点赞 回复 分享
发布于 2020-04-08 17:36

相关推荐

西南山:哥,你的技能是在报菜单吗
点赞 评论 收藏
分享
评论
1
3
分享
正在热议
# 25届秋招总结 #
442405次浏览 4511人参与
# 春招别灰心,我们一人来一句鼓励 #
41942次浏览 531人参与
# 北方华创开奖 #
107431次浏览 599人参与
# 地方国企笔面经互助 #
7962次浏览 18人参与
# 同bg的你秋招战况如何? #
76670次浏览 561人参与
# 虾皮求职进展汇总 #
115613次浏览 886人参与
# 阿里云管培生offer #
120237次浏览 2220人参与
# 实习,投递多份简历没人回复怎么办 #
2454658次浏览 34857人参与
# 实习必须要去大厂吗? #
55771次浏览 961人参与
# 提前批简历挂麻了怎么办 #
149901次浏览 1977人参与
# 投递实习岗位前的准备 #
1195935次浏览 18548人参与
# 你投递的公司有几家约面了? #
33205次浏览 188人参与
# 双非本科求职如何逆袭 #
662208次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4753次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157628次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11561次浏览 287人参与
# 发工资后,你做的第一件事是什么 #
12704次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35804次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20126次浏览 240人参与
# 我的上岸简历长这样 #
452016次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39299次浏览 314人参与
# 非技术岗是怎么找实习的 #
155868次浏览 2120人参与
牛客网
牛客企业服务