B题题解 | 末日DISCO

B题

不妨令第一个集合为

对于第个集合, 我们使用前个集合中每个集合的第个数,剩下的数从当前所有数的最大值开始往上补

这样子保证了任意两个集合肯定有且仅有一个共同元素,且每个元素最多出现两次

代码如下

n = int(input())
maze = [[0 for i in range(n)] for j in range(n)]
maze[0] = list(range(1, n+1))
ma = n
for i in range(1, n):
    for j in range(i):
        maze[i][j] = maze[j][i]
    for j in range(i, n):
        maze[i][j] = ma + 1
        ma += 1
for i in maze:
    print(' '.join(map(str, i)))

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务