BNU1068:比赛安排
来源:互联网 发布:linux更改用户名密码 编辑:程序博客网 时间:2024/04/26 11:42
BNU ACM/ICPC队的队员在训练之余,常常会举办一些娱乐性的比赛,这些比赛通常都很受大家欢迎。近期,在领队的带领下,1 VS 1取石子大赛又要开始了。在安排日程表时,需要考虑以下两个要求:
1、每个人每天最多只能参加一场比赛,可以不参加。
2、在大赛结束后,任意两人间都恰好进行了一场对决。
由于时间有限,我们希望比赛天数尽可能少,请聪明的你帮忙给出对阵方案。
1、每个人每天最多只能参加一场比赛,可以不参加。
2、在大赛结束后,任意两人间都恰好进行了一场对决。
由于时间有限,我们希望比赛天数尽可能少,请聪明的你帮忙给出对阵方案。
Input
输入包含多组数据。
输入第一行:一个整数t ≤ 50表示测试数据的组数。
每组数据一行包含一个整数2 < n ≤ 100,表明有n个队员参加比赛,且编号为1——n。
输入第一行:一个整数t ≤ 50表示测试数据的组数。
每组数据一行包含一个整数2 < n ≤ 100,表明有n个队员参加比赛,且编号为1——n。
Output
对于每组数据,输出的第一行为一个整数m,表示比赛进行需要的最少天数;接下来m行,依次输出从第一天到第m天的比赛对阵情况,一天一行。
具体输出格式请参照样例。每行末尾不要输出多余的空格。
如果有多种安排方法,输出任意一个即可。
每组答案后面保留一个空行。
具体输出格式请参照样例。每行末尾不要输出多余的空格。
如果有多种安排方法,输出任意一个即可。
每组答案后面保留一个空行。
Sample Input
234
Sample Output
31vs22vs33vs131vs2 3vs41vs3 2vs41vs4 2vs3
这题其实换个思路也就很简单了
假如1~50
我们让1vs50,2vs49…
然后将2移到末尾
1,3,4~50,2
这里就是
1vs2 3vs50 4vs49
通过循环移位就能将每个人安排比赛了
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int a[105];int main(){ int t,n,i,j,m; scanf("%d",&t); while(t--) { scanf("%d",&n); m = n; if(n%2) m++; printf("%d\n",m-1); for(i = 0; i<m; i++) a[i] = i+1; for(i = 1; i<m; i++) { int flag = 1; for(j = 0; j<m/2; j++) { if(a[j]<=n && a[m-1-j]<=n) { if(flag) { flag = 0; printf("%dvs%d",a[j],a[m-1-j]); } else printf(" %dvs%d",a[j],a[m-1-j]); } } printf("\n"); int tem = a[1]; for(j = 1; j<m; j++)//后移 a[j] = a[j+1]; a[m-1] = tem; } printf("\n"); } return 0;}
- BNU1068:比赛安排
- 比赛安排
- 比赛安排
- 比赛安排
- bnuoj 1068 比赛安排
- 算法训练 比赛安排
- Tsinsen A1103 比赛安排
- Tsinsen A1107 比赛安排
- bnuoj 1068 比赛安排
- 算法训练 比赛安排
- 算法训练 比赛安排
- first,单循环比赛安排算法
- 蓝桥杯 算法训练 比赛安排
- 多人单循环比赛的安排问题
- 2012年亚洲区赛各站比赛的安排
- 【程序8】乒乓球比赛赛程安排
- 关于比赛安排的求解问题
- 比赛赛程安排算法--分治算法
- 英国教会对政治制度的影响
- 点集配对问题 集合DP 按位DP
- 解决Mac OSX不识别CDC设备
- 美化 JSON 通过 BASH 命令
- 将java项目导出成jar-exe-安装程序
- BNU1068:比赛安排
- 通过Adobe Scout深入理解Flash播放器
- 一个格式较好的log4cplus properties配置文件
- CocoChina开发者大会
- c++沉思录笔记(17章代码)
- BNU1073:素数等差数列
- Getting started with Adobe Scout
- [cocos2d-x]瓦片地图的应用
- mysql主键和外键