社区
工具平台和程序库
帖子详情
一个有关循环赛日程安排的问题,十万火急,100分,绝对信誉!
tanxi4141
2003-11-02 04:47:26
1。问题描述
设有n个运动员要进行网球循环比赛
2。要求
设计一个满足以上要求的比赛要求表
1> 每个选手必须与其他n-1个选手各赛一次
2>每个选手一天只能比赛一次
3>当n是偶数时,循环赛进行n-1天
当n是奇数时,循环赛进行n天
...全文
42
6
打赏
收藏
一个有关循环赛日程安排的问题,十万火急,100分,绝对信誉!
1。问题描述 设有n个运动员要进行网球循环比赛 2。要求 设计一个满足以上要求的比赛要求表 1> 每个选手必须与其他n-1个选手各赛一次 2>每个选手一天只能比赛一次 3>当n是偶数时,循环赛进行n-1天 当n是奇数时,循环赛进行n天
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
steviolet
2003-12-05
打赏
举报
回复
分治法。
解决办法是:你自己画一个多边形,每个点代表一个运动员,然后对角线代表两个人对打。
算法课的作业来着。
ambition2005
2003-11-28
打赏
举报
回复
没看懂 plainsong(短歌) 不加注解,可是不好的编程风格哦
呵呵
开玩笑了
短歌如风
2003-11-10
打赏
举报
回复
#include <iostream>
#include <vector>
#include <algorithm>
typedef std::vector<int> IntAry;
int main()
{
int n;
std::cin >> n;
int m = n;
if (m % 2 == 0)
--m;
IntAry Numbers(m + 1);
for(int i = 1; i <= n; ++i)
Numbers[i - 1] = i;
if (m == n)
Numbers[m] = 0;
for (int i = 1; i <= m; ++i)
{
std::cout << "第" << i << "轮:";
for (int j = 0; j < (m + 1) / 2; j ++)
{
std::cout << "<" << Numbers[j] << "," << Numbers[m - j] << "> ";
}
std::cout << std::endl;
std::rotate(Numbers.begin() + 1, Numbers.end() - 1, Numbers.end());
}
}
与0比赛即为轮空。
verbal
2003-11-05
打赏
举报
回复
建议楼主把贴放在“基础类”中,应该会很快得到解决!
smilemac
2003-11-02
打赏
举报
回复
偶数的情况可以
1)先将运动员的对决图作反演变换;
2)然后用回溯法寻找一个(n-1)分图。
奇数的情况可按照plainsong说的化为偶数图处理。
短歌如风
2003-11-02
打赏
举报
回复
奇数时可以加一个不存在的运动员使人数变为偶数,凡和这个不存在的运动员比赛的队员即为该轮轮空。
不过偶数时的安排也比较复杂,algorithm.myrice.com上有一个算法,不过我感觉好象只适用于n=2^k时的情况。
groundstation-jvm-1.4.124-javadoc.jar
groundstation-jvm-1.4.124-javadoc.jar
cloudbak-1.0.1.zip
CloudBak(云朵备份) 是
一个
开源的微信云备份工具,能够将微信数据备份到服务器、Docker 或 NAS,并通过浏览器以类似微信网页版的界面访问数据,兼具实用性与便利性。
Desktop.zip
Desktop.zip
org.hl7.fhir.r4-5.6.107-javadoc.jar
org.hl7.fhir.r4-5.6.107-javadoc.jar
licensemanager-0.23.0-beta.jar
licensemanager-0.23.0-beta.jar
工具平台和程序库
24,857
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章