NKOJ1236 排队
作者:互联网
题目大意
元元曾经是班长。在校运动会上,元元的班要进行队列表演。元元要选出 \(2\times n\) 名同学编队,每人都被编上一个号,每一个从 \(1\) 到 \(n\) 的自然数都被某 \(2\) 名同学佩戴,现在要求将他们排成一列,使两个编号为 \(1\) 的同学中间恰好夹 \(1\) 名同学,两个编号为 \(2\) 的同学中间恰好夹 \(2\) 名同学,\(\cdots\),两个编号为 \(n\) 的同学中间恰好夹 \(n\) 名同学,元元希望知道这样的排法能否实现。
如果不能实现,输出 No Solution.
;可以实现则输出字典序最大的方案。
题目分析
dfs 求解是显然的,这里主要来证明无解情况。
设每个数字的位置分别为:\(a_1,a_2,\cdots,a_n\),其中 \(a_i\) 表示 \(i\) 的位置。
这 \(2\times n\) 个整数分别为 \(a_1,a_2,\cdots,a_n,a_1+1+1,a_2+2+1,a_3+3+1,\cdots,a_n+n+1\)。
所以有:
\[\sum\limits_{i=1}^na_i+\sum\limits_{i=1}^n(a_i+i+1)=\sum\limits_{i=1}^{2\cdot n}i \]\[2\cdot(\sum\limits_{i=1}^na_i)+\dfrac{n\cdot(n+1)}{2}+n=\dfrac{2\cdot n\cdot(2\cdot n+1)}{2} \]\[2\cdot(\sum\limits_{i=1}^na_i)=\dfrac{4\cdot n^2+2\cdot n-n\cdot(n+1)-2\cdot n}{2} \]\[4\cdot(\sum\limits_{i=1}^na_i)=n\cdot(3\cdot n - 1) \]所以 \(n\cdot(3\cdot n-1)\) 是 \(4\) 的倍数。\(n\bmod4\) 有且仅有 \(0,1,2,3\) 这四种情况,故 \(n\cdot(3\cdot n+1)\bmod 4=0,2,2,0\)。显然余数为 \(0\) 是方能满足条件,所以得出结论:
当 \(n\bmod 4=1\) 或 \(2\) 时无解。
标签:同学,limits,cdot,na,sum,排队,NKOJ1236,cdots 来源: https://www.cnblogs.com/Coros-Trusds/p/16387970.html