不会搜索了。。
DFS()中两个参数,枚举每两个队伍的比赛结果(分配当前队伍的分数)。
可以发现方案数量与具体哪只球队得了多少分无关,只与当前比赛的队伍数量和得分序列的组成有关。可以记忆化搜索。
DFS()中是从某支队伍和它后面的队伍一一进行比赛 分配得分,分配完当前后将其它队伍的得分情况哈希,看是否算过;
如果没就进行下一支队伍,其实就是计算去掉当前这支队伍的方案数。
n(n<=10)支队伍分数的情况最多为(28^9?)10^14级别,可以直接用longlong存。
这样做为什么必须要降序排?
因为前面小的
\(val\)更可能变得
\(<3\),从而省去后面的DFS。
//1616kb 684ms#include