题解 1645: 蓝桥杯算法训练VIP-比赛安排

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

1645: 蓝桥杯算法训练VIP-比赛安排(Python3)思路简单,但时间复杂度高(使用标准库)

解题思路:尽可能用现成的库构成排列组合。每次从中选对应的比赛,并且判断当前的两个队伍在当天是否参加过比赛,没参加过的才加入,一天结束后,把当天使用过的组合从原所有组合的列表中删去。注意事项:由于每次都要遍历所有排列组合判断重复情况,所以时间复杂度高。
优质题解

JakeLin-1645题-[算法训练VIP]比赛安排-题解(C++代码)-简单模拟

**思路:**以n=3为例,总共8个人,7天,那么第一列必是1和另外七个人打。后面的还没打过的两两一组,但是注意如果他们俩前些日子打过了,就不要安排他们一起打了,所以**用到viss数组记录谁跟谁打过**。【采用链表遍历的思想,但是这里直接判断】**两个vis数组变量说明:**|名称|作用||:---

蓝桥杯算法训练VIP-比赛安排-题解(C++代码)

#DFS就完事了,然而评测有问题20%无法AC,实际上手动输入是没问题的题描述有问题。应该是2^n支球队,每天比赛2^(n-1)场,一共比赛2^n-1天只需要第1个满足条件的答案,所以设置好flag,及时return,避免超时无意义搜索。dfs(day,k)代表第day天,第k场比赛。