sphoia

 

 

 用分治的思想实现:

data=[]
def copy(data,n,x1,y1,x2,y2):
    for i in range(n):
        for j in range(n):
            data[x2+i][y2+j]=data[x1+i][y1+j]

def creat_table(data,n,i,j):
    if(n==2):
        data[i][j]=i+1
        data[i][j+1]=i+2
        data[i+1][j]=i+2
        data[i+1][j+1]=i+1
    else:
        m=int(n/2)
        creat_table(data,m,i,j)
        creat_table(data,m,i+m,j)
        copy(data,m,i,j,i+m,j+m)
        copy(data,m,i+m,j,i,j+m)

def main():
    data=[]
    n=int(input("输入:"))
    #print("初始化数组")
    for i in range(n):
        d=[]
        for j in range(n):
            d.append(0)
        data.append(d)
    creat_table(data,n,0,0)
    print("最终日程表")
    for i in range(n):
        for j in range(n):
            print(data[i][j],end=\' \')
        print()
if __name__ == \'__main__\':
    main()

输入8生成的表格结果是:

 

输入16生成的表格结果是:

 

 

生成的日程表表格data[n][m]表示的意思是ID为n的选手在第m天与ID为data[n][m比赛

分类:

技术点:

相关文章:

  • 2021-10-09
  • 2021-11-01
  • 2021-10-12
  • 2021-11-01
  • 2021-11-01
  • 2021-06-17
猜你喜欢
  • 2021-10-12
  • 2021-10-12
  • 2021-11-01
  • 2021-10-12
相关资源
相似解决方案