思路:這題原來做的時候用的是種類並查集,但是我忘了。
現在有乙個更玄學的做法
因為說白了就是a b c 三個點之間的關係
那麼我就把乙個點拆成三個點(也就是開三倍的空間) 分別代表這個點是a b c
然後這個題就成了模擬???
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include7 #include
8 #include 9 #include 10 #include 11 #include
12//
#include
1314
#define ll long long
15#define inf 0x3f3f3f3f
16#define ls nod<<1
17#define rs (nod<<1)+1
18const
int maxn = 3e5 + 10;19
const
double eps = 1e-9;20
intpre[maxn];
2122
void init(int
n) 26}27
28int find(int
x) 33
34void merge(int x,int
y) 38
intmain()
50if (d == 1
) 55
merge(x,y);
56 merge(x+n,y+n);
57 merge(x+2*n,y+2*n);58}
59if (d == 2
) 64 merge(x,y+n);
65 merge(x+n,y+2*n);
66 merge(x+2*n,y);67}
68}69 printf("
%d\n
",ans);
70return0;
71 }
拆點並查集(poj 1182 食物鏈)
食物鏈 time limit 1000ms memory limit 10000k total submissions 76605 accepted 22779 description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃c,c吃a。現有n個動物,以1 n...
E 食物鏈(帶權並查集)
e 食物鏈 relation有三種取值 假設節點x的父節點為rootx,即p x parent rootx p i relation 0 表示節點x與其父節點rootx的關係是 同 類 p i relation 1 表示節點x與其父節點rootx的關係是 根吃 i p i relation 2 表示...
並查集 食物鏈
noi2001,水題,但是我調了很久。食物鏈time limit 1000ms memory limit 10000k total submissions 27766 accepted 8066 description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃...