题解 | 球格模型(简单版)

球格模型(简单版)

https://www.nowcoder.com/practice/fada102a84ec459ea93e3db4918c0f04

while True:
    try:
        n, m, k = map(int, input().split())
        if k < max(n, m):
            print(-1)
        else:
            # 创建一个全是0的二维数组
            lst = [[0 for _ in range(m)] for _ in range(n)]   # 列表推导式
            # 首先把数组的对角线给放上小球
            i, j = 0, 0
            while i <= n-1 and j <= m-1:
                lst[i][j] = 1
                i += 1
                j += 1
            # 给剩下的行或列放上小球
            if j < m-1:
                while j <= m-1:
                    lst[n-1][j] = 1
                    j += 1
            else:   # 即i<n-1的情况
                while i < n-1:
                    lst[i][m-1] = 1
                    i += 1
            # 把剩余的小球放在最后一个位置上
            lst[n-1][m-1] = k - max(n, m) + 1
            for x in range(n):
                print(' '.join(map(str, lst[x])))
    except:
        break

全部评论
while True: try: n, m, k = map(int, input().split()) max_mn, min_mn = max(m, n), min(m, n) if k < max_mn: print(-1) else: A = [[0 for _ in range(m)] for _ in range(n)] i = 0 while i < min_mn: # 对角线赋值 A[i][i] = 1 i += 1 if n-1 > i: while i < n: A[i][m - 1] = 1 i += 1 elif m-1 > i: while i < m: A[n - 1][i] = 1 i += 1 if k > max_mn: A[n - 1][m - 1] = k - max_mn + 1 for i in A: print(*i) except: break 我不太懂,为什么我的思路和你的类似,但是为什么就是超时呢
点赞 回复 分享
发布于 05-31 16:23 广东

相关推荐

06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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