アイデア:
非常に興味深い思考の問題。
実装:
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 int型チェック(ベクトル< INT >&V、設定 <ペア< INT、INT >>&ST) 4 { 5 INT RES = 0 。 6 地図<ペア< 整数、整数 >、INT > 融点; 図7は、 のために(int型 i = 1 ; iは= < 6 I ++; ) 8 { 9 用(INTをJ =; J <= 6。J ++ ) 10 { 11 、MP [make_pair(I、J)] = 0 ; 12 } 13 } 14 のための(自動これ:ST) 15 { 16 INT A = V [it.first - 1 ]、B = V [it.second - 1 ]。 17 対< INT、INT > TMP(MIN(A、B)、MAX(A、B))。 18 であれば(MP [TMP] == 0 ) 19 { 20 MP [TMP] = 1。解像度++; 21 } 22 } 23の リターンRES。 24 } 25 のint main()の 26 { 27 int型N、M、B。 28 一方(CIN >> N >> M) 29 { 30 セット <ペア< INT、INT >> ST。 31 のためには、(int型 i = 0 ; iがm <I ++は) 32 { 33 CIN >> A >> B。 34 st.insert(make_pair(MIN(a、b)は、マックス(b)参照))。 35 } 36 であれば(N <= 6){COUT << M << ENDL。続け; } 37 ベクター< 整数 > { 1、1、2、3、4、5、6 }。 38 INT MAXN = 0 。 39 行う 40 { 41 MAXN = MAX(MAXN、チェック(ST))。 42 } しばらく(next_permutation(a.begin()、a.end()))。 43 COUT << MAXN << ENDL。 44 } 45 リターン 0 。 46 }