yukicoder No.699 ペアでチームを作ろう2

No.699 ペアでチームを作ろう2 - yukicoder

本当に何も考えずに全探索すると12!=479001600回の計算が必要で間に合わない。

ペア(a,b)とペア(b,a)を同一視すると、12!/(2)^6=7484400回の計算にまで落ちる。C++ではこれで通るようだが、Javaでは全然駄目だ。そこで、二つのペアを(a,b),(c,d)と列挙するのと、(c,d),(a,b)と列挙するのを同一視することにする。このとき、12!/(6!2^6)=10395回の計算になり、これは十分1秒以内に処理できる。