算法训练 比赛安排
来源:互联网 发布:手机淘宝移动端 编辑:程序博客网 时间:2024/03/29 09:34
算法训练 比赛安排
时间限制:1.0s 内存限制:512.0MB
提交此题
问题描述
设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛。
输入格式
输入文件matchplan.in共一行,输入n的数值。
输出格式
输出文件matchplan.out共(2 n – 1)行,第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
http://lx.lanqiao.cn/problem.page?gpid=T159
后台测试数据没有逗号。
特殊判定的全排列搜索。
首先题目要求找到每个队伍不同的对手
而且每个队伍每天都进行了一次比赛。
可以确定每天比赛的排列是全排列中的一个元素。
然后 筛选掉所有已经比赛过的组合。
然后递归树钟去掉这些子叶。
最后符合要求的就是所求的比赛排列。
#include <iostream>#include <cmath>#include <algorithm>#include <cstring>using namespace std;int tag[1000];int d[1000];int dp[1000][1000];int n;int sum;void bfs(int t,int x){ tag[t]=x; if(t%2==0)//如果出现过已经比赛过的组合,就结束这个递归空间 { //for(int i=1;i<=t;i++) cout<<tag[i]<<' ';cout<<"zz"<<endl; for(int i=1;i<=t;i+=2) { //cout<<dp[tag[i+1]][tag[i]]<<' '<<dp[tag[i]][tag[i+1]]<<' '<<tag[i]<<' '<<tag[i+1]<<endl; if(dp[tag[i]][tag[i+1]]==1) {return ;} if(dp[tag[i+1]][tag[i]]==1) {return ;} } } if(t==n) { for(int i=1;i<=n;i+=2)//对已经比赛过的组合进行标记 { //cout<<dp[tag[i]][tag[i+1]]<<' '<<tag[i]<<' '<<tag[i+1]<<endl; dp[tag[i]][tag[i+1]]=1; dp[tag[i+1]][tag[i]]=1; } cout<<"<"<<sum<<">"; for(int i=1;i<=n;i+=2) { cout<<tag[i]<<'-'<<tag[i+1]; if(i+2<n) cout<<" "; }cout<<endl; sum++; } for(int i=1;i<=n;i++)//搜索全排列常用的手段。 { if(d[i]==0) { d[i]=1; bfs(t+1,i); d[i]=0; } }}int main(){ while(cin>>n) { memset(dp,0,sizeof(dp)); sum=1; int x=1; for(int i=0;i<n;i++) { x*=2; } n=x; //cout<<x<<endl; bfs(0,0); }}
0 0
- 算法训练 比赛安排
- 算法训练 比赛安排
- 算法训练 比赛安排
- 蓝桥杯 算法训练 比赛安排
- first,单循环比赛安排算法
- 比赛赛程安排算法--分治算法
- 比赛安排
- 比赛安排
- 比赛安排
- BNU1068:比赛安排
- bnuoj 1068 比赛安排
- Tsinsen A1103 比赛安排
- Tsinsen A1107 比赛安排
- bnuoj 1068 比赛安排
- 上班族训练安排。
- 算法比赛
- 数学训练----数论-寒假安排
- 多人单循环比赛的安排问题
- Hdu 5727 Necklace(二分图匹配)
- HTML <frameset> 标签 cols 属性
- extern const 变量
- ionic —— 手动控制content中的滚动条滚动位置之ionicScrollDelegate
- 字典
- 算法训练 比赛安排
- hive修改表/视图的注释
- 简单的登陆接口
- 1029. Median (25)
- 线上环境部署问题
- MyBatis发布到内网服务器上后的UnKnownHostException问题
- java安全架构____java SHA加密
- RMQ
- directx中第四卷