それらをPOJ1703Find、[互いに素セットの種類]を、それらをキャッチ

トピックへのリンク:http://poj.org/problem?id=1703

トピック効果:個々のnは、m回に尋ねます。代表的には、bとの関係を求め、Bの代わりに、所与のDは、異なるギャングに属します。

私の考え:

あまりにも料理、クラスはこのアプローチを期待していませんでした。

アイデア:

1.それは、所与のD Aに対して、Bが2人の異なるギャングに属し、2-SATのようだと思いました。私たちは、Bの反対ポイント通信でも、セット内に維持反対素集合データ構造で点bを使用します。

2. 場合、クエリは、Bは、2つの予備の値に等しい同じギャングに属します。点AとBが同じセットに属するポイントに同じ反対のセット、またはbの反対に属している場合は、aとbは異なるギャングです。上記は、その後、保持していない場合の関係は不明です。

3.反対点は架空である、オリジナルのポイントに影響を与えることができません。したがって、データ範囲倍、X +代表点xをN-は、対向します。

注意:あなたは、入力cinを時間を使用することはできません。scanf関数のみを使用します

1つの#include <stdio.hの>
 2  のconst  int型 MAXN = 2E5 + 1E4。
3  
4  int型のプレ[MAXN]。
5  
6  int型の検索(INT X)
 7  {
 8      であれば(PRE [X] == X)
 9          リターンX。
10      他の
11      {
 12          のintルート= 見つける(予備[X])。
13の          プレ[X] = 根。
14          リターンプレ[X]。
15      }
 16  }
 17  
18  INT メイン()
19  {
 20      INT T。
21      のscanf(" %dの"、&T)。
22      一方、(T - 23      {
 24          int型N、M。
25          のscanf(" %D%dの"、&​​N、&M)。
26          GETCHAR()。
27          のためにint型 i = 1 ; iが= < 2 * N; iが++ 28          {
 29              プレ[I] = I。
30          }
 31          int型 I = 1 ; I <= M; iが++ 32          {
 33              チャーCH。
34              int型A、B。
35              のscanf(" %のC%D%D "、およびCH、&、&B)。
36              もし(CH == ' D ' 37              {
 38                  intは、X =検索(a)は、Y = (B)を見つけます。
39                  INT XX =検索(+ n)が、YY =(B +見つけるN)。
40                  であれば(X =!YY)
 41                      プレ[YY] =のX。
42                  であれば(Y =!XX)
 43                      プレ[XX] = Y。
44              }
 45              であれば(CH == ' A ' 46              {
 47                  INT X =(a)は、Yを見つける= 見つける(B)
48                  INT XX =検索(+ n)が、YY =(B +見つけるN)。
49                  であれば(x == y)が
 50                      のprintf(" 同じギャングで\ N。" );
51                  他の 場合(X == YY || Y == XX)
 52                      (のprintf異なるギャングで\ n );
53                  他の
54                      のprintf(" わからない、まだ\ N。" );
55              }
 56              GETCHAR()。
57          }
 58      }
 59      リターン 0 60 }
POJ1703

 

おすすめ

転載: www.cnblogs.com/yuanweidao/p/10931777.html