循环比赛日程表(信息学奥赛一本通-T1325)
生活随笔
收集整理的這篇文章主要介紹了
循环比赛日程表(信息学奥赛一本通-T1325)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
設有N個選手進行循環比賽,其中N=2M,要求每名選手要與其他N-1名選手都賽一次,每名選手每天比賽一次,循環賽共進行N-1天,要求每天沒有選手輪空。
【輸入】
輸入:M。
【輸出】
輸出:表格形式的比賽安排表。一行各數據間用一個空格隔開。
【輸入樣例】
3
【輸出樣例】
1 2 3 4 5 6 7 8
2 1 4 3 6 5 8 7
3 4 1 2 7 8 5 6
4 3 2 1 8 7 6 5
5 6 7 8 1 2 3 4
6 5 8 7 2 1 4 3
7 8 5 6 3 4 1 2
8 7 6 5 4 3 2 1
【源程序】
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<string> #define INF 999999999 #define N 1001 #define MOD 1000000007 using namespace std; int a[N][N]; int main() {int m;int k=1,half=1;cin>>m;int n=1<<m;a[0][0]=1;while(k<=m){for(int i=0;i<half;i++)for(int j=0;j<half;j++)a[i][j+half]=a[i][j]+half;for(int i=0;i<half;i++)for(int j=0;j<half;j++){a[i+half][j]=a[i][j+half];a[i+half][j+half]=a[i][j];}half*=2;k++;}for(int i=0;i<n;i++){for(int j=0;j<n;j++)printf("%d ",a[i][j]);cout<<endl;}return 0; }?
總結
以上是生活随笔為你收集整理的循环比赛日程表(信息学奥赛一本通-T1325)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础算法 —— 递归/递推 —— 汉诺塔
- 下一篇: 暑期训练日志----2018.8.26