[题意分析] 要求设计一组n个m面的骰子,使每一个骰子i对骰子a[i]的胜率都大于50%. [算法分析] 对于每个i,连一条从i指向a[i]的边,那么题目给出的关系构成了一个有向基环树森林. 对于树上的点,我们按入度进行拓扑排序,当排序到i时,已经没有能战胜i的点,于是剩下最大的m个点就分配给它,这样构造能保证树上的情况. 拓扑排序后,只剩下环上的点还未构造. 对于环上的点,观察1.4样例可以发现一个构造方式:对于一个大小为n的环,从第一个点开始,逆着有向边放入1~n:再从第二个点开始,逆着有向…