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

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:09
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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