3563: DZY Loves Chinese - BZOJ

Description
神校XJ之学霸兮,Dzy皇考曰JC。
摄提贞于孟陬兮,惟庚寅Dzy以降。
纷Dzy既有此内美兮,又重之以修能。
遂降临于OI界,欲以神力而凌♂辱众生。
 
今Dzy有一魞歄图,其上有N座祭坛,又有M条膴蠁边。
时而Dzy狂WA而怒发冲冠,神力外溢,遂有K条膴蠁边灰飞烟灭。
而后俟其日A50题则又令其复原。(可视为立即复原)
然若有祭坛无法相互到达,Dzy之神力便会大减,于是欲知其是否连通。
Input
第一行N,M
接下来M行x,y:表示M条膴蠁边,依次编号
接下来一行Q
接下来Q行:
每行第一个数K而后K个编号c1~cK:表示K条边,编号为c1~cK
为了体现在线,K以及c1~cK均需异或之前回答为连通的个数
Output
对于每个询问输出:连通则为‘Connected’,不连通则为‘Disconnected’
(不加引号)
Sample Input
5 10
2 1
3 2
4 2
5 1
5 3
4 1
4 3
5 2
3 1
5 4
5
1 1
2 7 0 3
6 0 7 4 6
1 2 7
0 5 0 2 13
Sample Output
Connected
Connected
Connected
Connected
Disconnected
HINT

HINT

N≤100000 M≤500000 Q≤50000 1≤K≤15

数据保证没有重边与自环

Tip:请学会使用搜索引擎

 

 

无聊写了这道伪在线题

因为我们通过计算这一行有多少个数字可以得到每次的k,xor之后得到以前说联通的次数,最后一个暴力并查集就行了

 1 const

 2     maxn=100100;

 3     maxm=500500;

 4 var

 5     x,y,e:array[0..maxm]of longint;

 6     f:array[0..maxn]of longint;

 7     n,m,q,last:longint;

 8  

 9 function find(x:longint):longint;

10 begin

11     if f[x]=x then exit(x);

12     f[x]:=find(f[x]);

13     exit(f[x]);

14 end;

15  

16 procedure main;

17 var

18     i,cnt,k:longint;

19 begin

20     read(n,m);

21     for i:=1 to m do

22         read(x[i],y[i]);

23     readln(q);readln;

24     for i:=1 to q-1 do

25         begin

26             read(k);cnt:=0;

27             while not seekeoln do

28                 begin

29                     inc(cnt);

30                     read(e[cnt]);

31                 end;

32             readln;

33             k:=k xor cnt;

34             if k>last then

35                 writeln('Connected')

36             else

37                 writeln('Disconnected');

38             last:=k;

39         end;

40     for i:=1 to cnt do e[i]:=e[i] xor k;

41     for i:=1 to n do f[i]:=i;

42     for i:=1 to cnt do y[e[i]]:=x[e[i]];

43     for i:=1 to m do

44         if find(x[i])<>find(y[i]) then f[f[x[i]]]:=f[y[i]];

45     for i:=1 to n-1 do

46         if find(i)<>find(i+1) then

47         begin

48             writeln('Disconnected');

49             exit;

50         end;

51     writeln('Connected');

52 end;

53  

54 begin

55     main;

56 end.
View Code

 

你可能感兴趣的:(chinese)