其他分享
首页 > 其他分享> > NKOJ1236 排队

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