この記事はブログから移植したものです。 この記事では競技プログラミングと群論に関する解説をします。競技プログラミングの問題を群論という立場から見ることで、新たな視点を得ることができるようになると思います。また、群論の入門にもなればいいなと思っています。 swap と順列 競技プログラミングの問題に、swap と順列は多く登場します。swap とは、2 つの要素を入れ替える操作のことです。例えば、次のような問題があります。 第二回全国統一プログラミング王決定戦予選 C - Swaps N 要素からなる 2 つの整数列 A_1,\ldots,A_N および B_1,\ldots,B_N が与えられます。以下の操作を N-2 回まで (0 回でもよい) 行うことで、1 以上 N 以下のすべての整数 i に対して A_i\le B_i となるようにできるか判定してください。 1 以上 N 以下の相
