糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 循环赛日程表------分治算法

循环赛日程表------分治算法

时间:2024-09-11 06:43:58

相关推荐

循环赛日程表------分治算法

【题目描述】

设有NN个选手进行循环比赛,其中N=2M2M,要求每名选手要与其他N−1N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1N−1天,要求每天没有选手轮空。

【输入】

输入:M。

【输出】

输出:表格形式的比赛安排表。一行各数据间用一个空格隔开。

【输入样例】

3

【输出样例】

1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7 8 1 2 3 46 5 8 7 2 1 4 37 8 5 6 3 4 1 28 7 6 5 4 3 2 1

#include <bits/stdc++.h>#define maxn 105#define INF 99999999using namespace std;int mp[maxn][maxn];int main(){int n,m,k=1,half=1;cin>>m;n=1<<m;mp[1][1]=1;while(k<=m){for(int i=1; i<=half; i++){for(int j=1; j<=half; j++){mp[i][j+half]=mp[i][j]+half;}}for(int i=1; i<=half; i++){for(int j=1; j<=half; j++){mp[i+half][j]=mp[i][j+half];mp[i+half][j+half]=mp[i][j];}}half*=2;k++;}for(int i=1; i<=n; i++){int f=1;for(int j=1; j<=n; j++){if(f)f=0;elsecout<<" ";cout<<mp[i][j];}cout<<endl;}return 0;}

如果觉得《循环赛日程表------分治算法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。