藍橋杯—比賽安排

  算法訓練 比賽安排  
時間限制:1.0s   內存限制:512.0MB
    
問題描述
  設有有2 n(n<=6)個球隊進行單循環比賽,計劃在2 n – 1天內完成,每個隊每天進行一場比賽。設計一個比賽的安排,使在2 n – 1天內每個隊都與不同的對手比賽。
輸入格式
  輸入文件matchplan.in共一行,輸入n的數值。
輸出格式
  輸出文件matchplan.out共(2 n – 1)行,第i行輸出第i天的比賽安排。
  格式爲:<i> A-B,C-D,……。其中i是天數,A,B分別爲比賽雙方的編號,每行共2 n-1個比賽場次。
樣例輸入
2
樣例輸出
<1>1-2,3-4
<2>1-3,2-4
<3>1-4,2-3
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int m;
	cin>>m;
	int n=pow(2,m);
	int a[100];//一維數組存放每天還沒有比過的隊 
	int b[100][100];//二維數組判斷兩隊是否比過了 
	memset(b,0,sizeof(b));
	for(int t=1;t<=n-1;t++)//記錄天數 
	{
		cout<<"<"<<t<<">";
		memset(a,1,sizeof(a));
		for(int i=1;i<=n;i++)
		{
		    if(a[i]!=0)
		    {
			    a[i]=0;
//			    cout<<i;
//				cout<<"-";
			    for(int j=1;j<=n;j++)
			    {
			    	if(b[i][j]==0)
			    	{
			    	    if(a[j]!=0)
					    {
					        cout<<i<<"-"<<j<<" ";
				            a[j]=0;
				            b[i][j]=b[j][i]=1; 
				            break;
					    }
				    
			    	}
			    }
	  	    }
		} 
		cout<<endl;
	} 
} 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章